salut tous le monde,
L’erreur m’a perdu beaucoup de temps , svp Aide-moi pour le corriger
voila l'erreur
table étuliser etudiant (nom,sex ,id)Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'WHERE id ='3'' à la ligne 5' in F:\Program Files\EasyPHP-5.3.3\www\1er-example\forum\class_UserTable.php:25 Stack trace: #0 F:\Program Files\EasyPHP-5.3.3\www\1er-example\forum\class_UserTable.php(25): PDOStatement->execute(Array) #1 F:\Program Files\EasyPHP-5.3.3\www\1er-example\forum\main.php(9): UserTable->update('adel', 'g', 3) #2 {main} thrown in F:\Program Files\EasyPHP-5.3.3\www\1er-example\forum\class_UserTable.php on line 25
contenu de fichier "class_UserTable.php"
contenu de fichier "class_MyPDO.php"
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
18
19
20
21
22
23
24
25
26
27
28
29 <?php class UserTable { private $update; public function __construct($db) { $this->update = $db->prepare( "UPDATE etudiant SET nom = :nom, sex = :sex, WHERE id =:id"); } public function update($nom, $sex, $id) { $this->update->execute( /*ligne 25*/ array(':nom' => $nom,':sex'=>$sex,'id'=> $id));/*ligne 25*/ return $this->update->rowCount(); } }
contenu de fichier "main.php"
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
18
19 <?php class MyPDO extends PDO { public function __construct($dsn, $user=NULL, $password=NULL) { parent::__construct($dsn, $user, $password); $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } public function prepare($sql, $options=NULL) { $statement = parent::prepare($sql); if(strpos(strtoupper($sql), 'SELECT') === 0) //requête "SELECT" { $statement->setFetchMode(PDO::FETCH_ASSOC); } return $statement; } } ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php require_once 'class_UserTable.php'; require_once 'class_MyPDO.php'; $db = new MyPDO('mysql:host=localhost;dbname=all', 'root', ''); $userTable = new UserTable($db); /*ligne 9*/echo"le nombre de lignes modifier=".$userTable->update('adel','g',3); ?>
Partager