Что эквивалентно mysql_insert_id ();используя подготовленное заявление? - PullRequest
9 голосов
/ 18 марта 2012

Я использовал подготовленный оператор для вставки заказа в таблицу заказов, но теперь я хочу вставить позиции заказа в таблицу позиций заказов на основе последнего идентификатора, вставленного в таблицу заказов:

if (isset($_POST['process'])) {

    $order_name = $_POST['order_name'];
    //create initial order
    $stmt = $conn2->prepare("INSERT INTO orders (order_name) VALUES (?)");
    $stmt->bind_param('s', $order_name);
    $stmt->execute();

    //this gets the most recent auto incremented ID from the database - this is the order_id we have just created
    $order_id = mysql_insert_id();

    //loop over all of our order items and add to the database
    foreach ($_SESSION['order'] as $item) {

Что эквивалентно mysql_insert_id(); с использованием подготовленного заявления?

Ответы [ 2 ]

19 голосов
/ 18 марта 2012

Если вы используете PDO, это PDO::lastInsertId().Поэтому, если ваш дескриптор базы данных называется $link:

$order_id = $link->lastInsertId();

Если вы используете MySQLi, это mysqli::$insert_id или mysqli_insert_id():

$order_id = $link->insert_id;
3 голосов
/ 18 марта 2012

Вы можете попробовать $stmt->insert_id, чтобы получить вставленный идентификатор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...