2012-03-17 8 views
8

Użyłem przygotowane oświadczenie wstawić porządek w tabeli zleceń, ale teraz chcę wstawić elementy porządek w tabeli elementów ładu opartego na ostatnim ID włożonej w tabeli zamówień:Co to jest odpowiednik mysql_insert_id(); używając przygotowanego oświadczenia?

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

Co jest równoważne do mysql_insert_id(); używając przygotowanego wyciągu?

+0

Jakie jest Twoje pytanie ? –

+0

Co to jest mysql_insert_id(); w przygotowanym stylu wypowiedzi? – user1227124

+1

Masz na myśli, co jest odpowiednikiem 'mysql_insert_id' w bibliotece PDO? Coś nie tak z [dokumentacją] (http://www.php.net/manual/en/pdo.lastinsertid.php)? –

Odpowiedz

17

Jeśli używasz PDO, to jest to PDO::lastInsertId(). Więc jeśli uchwyt baza nazywa $link:

$order_id = $link->lastInsertId(); 

Jeśli używasz mysqli, to mysqli::$insert_id lub mysqli_insert_id():

$order_id = $link->insert_id; 
+0

ale im przy użyciu przygotowanych oświadczeń z mysqli nie PDO – user1227124

+0

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

+0

Dzięki to zadziałało! – user1227124

2

Można spróbować $stmt->insert_id dostać zapisany identyfikator

Powiązane problemy