bonjour
je suis bloqué face à cette erreur incompréhensible

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error'
voici le code

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
 
 public function __construct($sDriver='',$sHost='',$sDatabase='',$sUser='',$sPassword='') {
        $sDrive = $sDriver.':dbname='.$sDatabase.";host=".$sHost;
        $this->oPdo=new PDO($sDrive, $sUser, $sPassword);
        $this->oPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   
    }
 
    public function executeSQL($sql, $parameters) {
        //1. Prepare the statement
        $stamement=$this->oPdo->prepare($sql);
 
        //2.execute the statement
        $stamement->execute($parameters);
 
        //3. return the result
        return $stamement->fetchAll();
    }
et la ligne contenant l'erreur
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
 
 private function SaveOrGetLanguageId($languageName) {
    	$getIdSql="select id from languages where name=:name";
        $result=$this->dbLayer->executeSQL($getIdSql,array(":name"=>$languageName));
        if($result==null||sizeof($result)==0) {
            $saveSql="insert into languages(name) values(:name)";
            $this->dbLayer->executeSQL($saveSql, array(":name"=>$languageName));
 
            if($this->dbLayer->getAttribute(PDO::ATTR_DRIVER_NAME) == 'pgsql') {  
            	 return $this->dbLayer->getLastInsertedId('languages');
            }else{
            	 return $this->dbLayer->getLastInsertedId('languages');	
            }
        } else {
            return $result[0][0];
        }
    }
Remarque :

l'application fonctionne sous pgsql mais sous mysql elle me retourne cet erreur
L'erreur indiqué se trouve sur la ligne de requete qui fait l'insertion
Merci pour votre aide