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());
Это может показать любые ошибки, которые генерирует запрос к базе данных.