2012-03-17 40 views
8

he utilizado declaración preparada para insertar una orden en una tabla de pedidos pero ahora quiero insertar los artículos de la orden en la tabla de posiciones de pedido basado en el último ID insertado en la tabla de pedidos:Lo que es equivalente a mysql_insert_id(); usando una declaración preparada?

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) { 

Lo que equivale a mysql_insert_id(); usando una declaración preparada?

+0

¿Cuál es tu pregunta ? –

+0

¿Qué es mysql_insert_id(); en estilo de declaración preparado? – user1227124

+1

¿Quiere decir, qué es el equivalente de 'mysql_insert_id' en la biblioteca PDO? Algo malo con [la documentación] (http://www.php.net/manual/en/pdo.lastinsertid.php)? –

Respuesta

17

Si está utilizando PDO, es PDO::lastInsertId(). Así que si su mango de la base de datos se llama $link:

$order_id = $link->lastInsertId(); 

Si está utilizando MySQLi, es mysqli::$insert_id o mysqli_insert_id():

$order_id = $link->insert_id; 
+0

pero estoy usando declaraciones preparadas con mysqli no PDO – user1227124

+0

@ user1227124: Entonces es ['mysqli :: $ insert_id'] (http://php.net/manual/en/mysqli.insert-id.php) o' mysqli_insert_id () '. – Ryan

+0

¡Gracias funcionó! – user1227124

2

Usted puede intentar $stmt->insert_id para obtener insertada Identificación

Cuestiones relacionadas