2013-03-26 4 views
-3
$userName = $this->getParam('userName', self::TYPE_STRING); 

    $db = Frapi_Database::getInstance(); 
    $sql = "INSERT INTO user (userName) 
      values ('".$userName."')"; 

    $stmt = $db->prepare($sql);   

    $stmt->execute(); 

    $this->data['userId'] = mysql_insert_id(); 

всегда получает 0 в userId.mysql_insert_id всегда возвращает 0

Я попытался найти это, но не смог найти решение для него.

+0

С подготовкой и выполнением звонков, я думаю, что это скорее вернет ** Fatal Error **. – hjpotter92

ответ

0

спасибо за вашу помощь Guyz.
Это сработало для меня.
$ this-> data ['userId'] = $ db-> lastInsertId();

1

Вы прочитали документацию?

Идентификатор генерируется для столбца AUTO_INCREMENT предыдущим запросом на успеха, 0, если предыдущий запрос не генерирует значение AUTO_INCREMENT , или FALSE, если нет соединения с MySQL, не было установлено.

Кроме того, эти вызовы являются устаревшими.

Это расширение устарело с PHP 5.5.0 и будет удалено в будущем. Вместо этого расширение MySQLi или PDO_MySQL должно быть .

Читайте о выборе нового API here

+0

как MAMP pro имеет версию PHP 5.4.10, я хотел протестировать более старую версию. – keen

+0

и предыдущий оператор insert делает запись в базу данных. поэтому соединение установлено. – keen

+0

Можете ли вы опубликовать схему своего стола? – Rawkode

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