Erreur Mysql suite modification au passage en PDO:

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur Mysql suite modification au passage en PDO:

Re: Erreur Mysql suite modification au passage en PDO:

par micheldejonghe » 14 juil. 2016, 16:47

Bonjour,
Et bien merci, je me met au boulot.
Cdt

Re: Erreur Mysql suite modification au passage en PDO:

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() :)).

Re: Erreur Mysql suite modification au passage en PDO:

par micheldejonghe » 14 juil. 2016, 14:45

Bonjour,
Merci pour le conseil, mais je suis vraiment un "bleu" en la matière.
Pouvez vous me mettre au moins la modif à faire ?
Merci

Re: Erreur Mysql suite modification au passage en PDO:

par or 1 » 14 juil. 2016, 14:24

voir http://php.net/manual/fr/pdo.query.php pour une utilisation correcte de cette fonction.

Erreur Mysql suite modification au passage en PDO:

par micheldejonghe » 14 juil. 2016, 14:18

Bonjour,
Voici le bout de code qui me dit l'erreur suivante:

( ! ) Fatal error: Non-static method PDO::query() cannot be called statically in C:\wamp\www\sandrinedejonghe\admin\entree.php on line 133

Et voici le bout de code:

$handle=opendir('../base');//ouvre le rep base
while ($file = readdir($handle)) {
//$i++;
if ($file != "." && mb_eregi('.htm', $file) && $file != "..") { //nouvre que les pages .htm
$affsql = $dbh->query("SELECT * FROM `fiche` WHERE fichier = '../base/$file'"); //effectue la recherche mysql
$affreq = pdo::query($affsql , $dbh ) or die(mysql_error());
$affrow = mysql_num_rows($affreq);
if ($affrow =="0"){
$z++;//sert a afficher la phrase plus bas
echo '<br><input type="radio" name="radiobutton" value="'.$file.'">'.$file.'';
}
}
}
if ($z =="")
echo "<br><br>Toutes les fiches on &eacute;t&eacute; enregistr&eacute;es";
closedir($handle);

Merci pour votre aide