Bonjour,
Question basique mais je tourne en rond sans trouver la solution, du fait de mon manque de connaissances PDO (même si j'ai lu tutos et forums..) :
Je cherche à traduire une requête PDO "classique" - qui fonctionne - en requête préparée - qui ne fonctionne pas -
Pourriez-vous m'aider dans cette "traduction" vers la requête préparée svp ?
1) la PDO Classique qui fonctionne
2) La première version de PDO préparée, qui ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $connexion = PDO2::getInstance(); $resultats = $connexion->query("SELECT COUNT(*) FROM $table_clients WHERE id='". $_SESSION['id'] ."'"); $count = $resultats->fetchColumn() ; $resultats->closeCursor();
erreur générée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $connexion = PDO2::getInstance(); $sql_prep = "SELECT COUNT(*) AS check FROM $table_clients WHERE id= :id_number" ; $query = $connexion->prepare($sql_prep) ; $result = $query->execute(array( ':id_number' => intval($_SESSION['id']) )); $count = $result->check;
EDIT : pas d'erreur mais $count=0 alors que count devrait sortir "1"
3) La seconde version de PDO préparée, qui ne fonctionne pas non plus :
erreur générée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $connexion = PDO2::getInstance(); $sql_prep = "SELECT COUNT(*) FROM $table_clients WHERE id= :id_number" ; $query = $connexion->prepare($sql_prep) ; $result = $query->execute(array( ':id_number' => intval($_SESSION['id']) )); $count = $result->fetchColumn();
EDIT : Fatal error: Call to a member function fetchColumn() on a non-object
4) En annexe, Ma classe PDO2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class PDO2 extends PDO { private static $_instance; public function __construct( ) { } /* Singleton */ public static function getInstance() { if (!isset(self::$_instance)) { try { self::$_instance = new PDO(SQL_DSN, SQL_USERNAME, SQL_PASSWORD); } catch (PDOException $e) { echo 'PDO2 Erreur : '.$e->getMessage().'<br />'; die(); } } return self::$_instance; } }
Partager