Tout d'abord merci infiniment de fait que vous avez décidé de m'aider :
j'ai un problème dans ces requêtes Mysql :
$id_client=$_SESSION['id_client'];
$test=$DB->exec("INSERT INTO commande(`id_client`,`id_status`) VALUES($id_client,2)");
$comd=$DB->query("select id_comm from commande where id_client=$id_client AND ((CURRENT_TIMESTAMP - date_cmd)<1000)");
je les ai exécutés dans phpmyadmin: et elles sont bien fonctionné.mais lorsque je reviens vers mon code php. il declare ces warning:Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2)' at line 1 in C:\xampp\htdocs\t\designshop\db.class.php on line 36
Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND ((CURRENT_TIMESTAMP - date_cmd)<1000)' at line 1 in C:\xampp\htdocs\t\designshop\db.class.php on line 28[/b]
et voila ma db.class :
<?php
class DB{
private $host='localhost';
private $username='root';
private $password='';
private $database='designshop';
private $db;
public function __construct($host = null,$username=null,$password=null,$database=null){
if($host!=null){
$this->host=$host;
$this->username=$username;
$this->password=$password;
$this->database=$database;
}
try{
$this->db= new PDO('mysql:host='.$this->host.';dbname='.$this->database, $this->username, $this->password, array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8',
PDO::ATTR_ERRMODE =>PDO::ERRMODE_WARNING
));
}catch (PDOException $e){
die('<h1>Impossible de se connecter a la base de donnee</h1>');
}
}
public function query($sql,$data = array()){
$req=$this->db->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_OBJ);
}
public function exec($sql,$data = array()){
$req=$this->db->prepare($sql);
$req->execute($data);
}
}
?>