par
Ryle » 14 juil. 2016, 15:46
Bonjour,
En mode objet, il y a deux façon d'accéder à un attribut ou une méthode. Le mode statique permet un accès sans nécessiter d'instancier un objet en particulier. En gros, la méthode ou l'attribut auquel tu fais appel ne dois pas utiliser $this et ne requière donc pas à une instance spécifique de l'objet. Pour ces appels statiques, on utilise le nom de la classe et l'opérateur "::" de cette façon Classe::methodeStatique()
Certaines méthodes ou attribut au contraire, nécessitent obligatoirement qu'un objet ait été instancié avec un appel à "new". Une fois l'objet instancier, les appels aux méthodes et attributs de l'instance se font à partir de la variable contenant l'instance et l'opérateur "->" de cette façon : $instance->methode()
C'est le cas de la méthode query de pdo. Il faut donc instancier un nouvel objet $dbh = new PDO() et utiliser l'opérateur "->" pour exécuter ta requête
$dbh->query(...);
A noter cependant que ton code comporte un autre problème, puisque la variable $affsql ne contient pas la requête SQL, mais son exécution (où en l’occurrence tu utilises bien la syntaxe $dbh->query()

).
Bonjour,
En mode objet, il y a deux façon d'accéder à un attribut ou une méthode. Le mode statique permet un accès sans nécessiter d'instancier un objet en particulier. En gros, la méthode ou l'attribut auquel tu fais appel ne dois pas utiliser $this et ne requière donc pas à une instance spécifique de l'objet. Pour ces appels statiques, on utilise le nom de la classe et l'opérateur "::" de cette façon Classe::methodeStatique()
Certaines méthodes ou attribut au contraire, nécessitent obligatoirement qu'un objet ait été instancié avec un appel à "new". Une fois l'objet instancier, les appels aux méthodes et attributs de l'instance se font à partir de la variable contenant l'instance et l'opérateur "->" de cette façon : $instance->methode()
C'est le cas de la méthode query de pdo. Il faut donc instancier un nouvel objet $dbh = new PDO() et utiliser l'opérateur "->" pour exécuter ta requête
$dbh->query(...);
A noter cependant que ton code comporte un autre problème, puisque la variable $affsql ne contient pas la requête SQL, mais son exécution (où en l’occurrence tu utilises bien la syntaxe $dbh->query() :)).