[RESOLU] erreur dans membre online

Eléphant du PHP | 257 Messages

19 févr. 2017, 16:38

bonjour voici mon erreur seriez vous m'éclairer svp?
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in C:\Program Files\EasyPHP-5.3.8.1\www\source\online_site.php:13 Stack trace: #0 C:\Program Files\EasyPHP-5.3.8.1\www\source\online_site.php(13): PDOStatement->execute(Array) #1 C:\Program Files\EasyPHP-5.3.8.1\www\source\header.php(125): require('C:\Program File...') #2 C:\Program Files\EasyPHP-5.3.8.1\www\source\message_recu.php(2): require_once('C:\Program File...') #3 {main} thrown in C:\Program Files\EasyPHP-5.3.8.1\www\source\online_site.php on line 13
if(isset($_SESSION['login'])){
  if(isset($_SESSION['type_site'])){
	if(isset($_SESSION['ID'])){
      
  $requete_nombre_connecte = $connection->prepare('SELECT COUNT(*) pseudo_site FROM online_site WHERE pseudo=:pseudo_site');
  if($requete_nombre_connecte->execute(array(':pseudo_site'=> $_SESSION['login']))){
  $connecte = $requete_nombre_connecte->fetchColumn();
  
    if($connecte >0){
                $udapte_connecte = ('UPDATE online_site SET timestamp=:timestamp WHERE pseudo=:pseudo');	
                $req_connecte = $connection->prepare($udapte_connecte);			
                $req_connecte->execute(array(':timestamp'=> date("Y-m-j H:i:s"),':id_membre'=>$_SESSION['ID'],':pseudo'=>$_SESSION['login'],':type'=>$_SESSION['type_site']));	
        }else{
                 $connecte_online = array(':timestamp'=> date("Y-m-j H:i:s"),':id_membre'=>$_SESSION['ID'],':pseudo'=>$_SESSION['login'],':type'=>$_SESSION['type_site']);	               
                 $values= join(', ',array_keys($connecte_online));
                 $req=$connection->prepare( 'INSERT INTO online_site ('.str_replace(':','',$values).') VALUES('.$values.')' );
                 $req->execute($connecte_online);
       }
        }
     }
  }
}

Mammouth du PHP | 1306 Messages

19 févr. 2017, 17:53

l'erreur te dit qu'il n'y a pas le même nombre de paramètre dans ta requète et dans ton exécute
regarde ceci, tu cherche a mettre type et id_membre alors qu'il n'y a rien de tout cela dans la requète. vérifie toute tes requètes
$udapte_connecte = ('UPDATE online_site SET timestamp=:timestamp WHERE pseudo=:pseudo');	
                $req_connecte = $connection->prepare($udapte_connecte);			
                $req_connecte->execute(array(':timestamp'=> date("Y-m-j H:i:s"),':id_membre'=>$_SESSION['ID'],':pseudo'=>$_SESSION['login'],':type'=>$_SESSION['type_site']));
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie