2014-02-19 3 views
-2

Я хочу добавить пользователя в базу данных. У каждого пользователя есть уникальный идентификатор, который создается автоматически (A_I). Если я добавлю пользователя, я хочу получить этот идентификатор. Я пытаюсь сделать это с помощью «insert_id», но если я это сделаю, я получаю сообщение об ошибке.PHP query insert_id не работает

$sth=Connection()->prepare ("INSERT INTO Users (Username, Password) VALUES(:Username, :Password)"); 
$sth->BindValue(":Username", $username, PDO::PARAM_STR); 
$sth->BindValue(":Password", $password, PDO::PARAM_STR); 
$sth->execute(); 
$ID = $sth->insert_id; 

Может ли кто-нибудь сказать мне, что я делаю неправильно?

+0

дублируется вопрос http://stackoverflow.com/questions/6556720/using-php-mysqli-and-prepared-statement-how-i-return-the-id-of -the-inserted-ro – BillyBigPotatoes

ответ

2

Вы используете PDO не mysqli. Вы должны использовать PDO::lastInsertId(). Как это:

$con = Connection(); 
$sth= $con->prepare ("INSERT INTO Users (Username, Password) VALUES(:Username, :Password)"); 
$sth->BindValue(":Username", $username, PDO::PARAM_STR); 
$sth->BindValue(":Password", $password, PDO::PARAM_STR); 
$sth->execute(); 
$ID = $con->lastInsertId(); 
+0

Спасибо за быстрый ответ. Если я это сделаю, он по-прежнему приходит с ошибкой: Fatal error: Call to undefined method PDOStatement :: lastInsertId() – Wouter

+0

Спасибо, теперь он работает! – Wouter

Смежные вопросы