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
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();
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
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;
erreur générée :
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 :
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();
erreur générée :
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; 
	}
}