mysql_insert_id и мои беды?

Я пытаюсь получить автоматически увеличенный столбец строки. Код объяснит, но в основном я пытаюсь вставить строку в таблицу с именем orders, а затем хочу получить автоматически увеличенное число. Это мой PHP.


<?php

$db = DBConnection::connect();

$q = "INSERT INTO orders (customerid, orderdate) VALUES (".$customerid.", CURRENT_TIMESTAMP)";

$ps = $db->prepare($q);     
$ps->execute();
$db = null;

echo mysql_insert_id();
?>

На этом этапе все, что я действительно хочу сделать, это повторить автоматический номер.

Это моя структура


CREATE TABLE `orders` (
  `orderid` int(25) NOT NULL AUTO_INCREMENT,
  `customerid` int(11) NOT NULL,
  `orderdate` date DEFAULT NULL,
  PRIMARY KEY (`orderid`),
  KEY `orderid` (`orderid`)
)

Любая помощь будет принята с благодарностью, спасибо:)

3 ответа

Решение

ЗОП отличается от mysql_* функции.

Поскольку вы использовали PDO, вы должны использовать метод lastInsertId() из объекта PDO:

$db->lastInsertId();

DBConnection!= MySQL

Вы не можете использовать функции из разных библиотек, как это. Вы должны либо изменить mysql_num_rows() к DBConnection эквивалент или изменить DBConnection вещи для mysql_*,

Попробуйте добавить

$ps->execute()
or die(mysql_error());

Это может показать любые ошибки, которые генерирует запрос к базе данных.

Другие вопросы по тегам