[Hjälp!] PHP PDO prepared query's

Permalänk
Medlem

[Hjälp!] PHP PDO prepared query's

Hej, jag sitter här och försöker ta mig in i PDO men har stött på problem som ni kanske kan hjälpa till med.

Kod som skall lägga in användare i tabell:

$dbh=new db(); $query="INSERT INTO ".$dbh->prefix."users (username, password, mail, firstname, lastname, ip, remote_addr, regdate, usertype)VALUES( :username , :pw , :fname , :lname , :ip , :remote_addr , :regdate , :type )"; $input=array( "username"=>$username, "pw"=>$pw, "fname"=>$fname, "lname"=>$lname, "ip"=>$ip, "remote_addr"=>$remote_addr, "regdate"=>$date, "type"=>0); if($dbh->execute($query,$input)){ echo 'admin added'; } else{ echo "some thing went wrong..."; }

Funktionen i db klassen:

function execute($sql,$vars=null){ $run=$this->dbh->prepare($sql); $go=$run->execute($vars); if($go) return true; else return false; }

Erroren:

Warning: PDOStatement::execute(): SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 in C:\public_html\s\cms\lib\db.class.php on line 53 some thing went wrong...

Vad jag förstår av erroren är att det skall vara något fel på PDO variablerna, men kan inte hitta något sådant. Vad kan det vara för fel??

Permalänk

Querysträngen säger att du tänker mata in värden till 9 kolumner men du ger den bara 8 ("Column count doesn't match value count at row 1").

Du har missat att ge ett värde till kolumnen 'mail'.

Permalänk
Medlem
Skrivet av akatabrask:

Querysträngen säger att du tänker mata in värden till 9 kolumner men du ger den bara 8 ("Column count doesn't match value count at row 1").

Du har missat att ge ett värde till kolumnen 'mail'.

Tackar man blir lätt hemmablind