Birden / iç içe MySQLi ifadeleri kullanmak mümkün?

3 Cevap php

Bir önceki ifadenin fetch () çağrısı içinde bir MySQLi hazırlanmış deyimi olması mümkün mü? Eğer değilse, ne etrafında iyi yolu nedir?

Örnek kod:

if($stmt = $link->prepare("SELECT item FROM data WHERE id = ?")) {
  $stmt->bind_param("i", $id);
  $stmt->execute();
  $stmt->bind_result($item);
  while( $stmt->fetch() ) {
      /* Other code here */
      $itemSummary = $item + $magic;
      if($stmt2 = $link->prepare("INSERT INTO summaries (itemID, summary) VALUES (?, ?)")) {
          $stmt2->bind_param("is", $itemID, $itemSummary);
          $stmt2->execute();
          $stmt2->close();
      }
  }
}

3 Cevap

Eğer ikinci bir bağlantı başlatmak için var olun rağmen, bunu yapmak gerekir.

Bu tek bağlantı yolu:

if($stmt = $link->prepare("SELECT item FROM data WHERE id = ?"))
{
   $stmt->bind_param("i", $id);
   $stmt->execute();
   $stmt->store_result(); // <-- this
   $stmt->bind_result($item);
   while( $stmt->fetch() )
   {
      /* Other code here */
      $itemSummary = $item + $magic;
      if($stmt2 = $link->prepare("INSERT INTO summaries (itemID, summary) VALUES (?, ?)"))
      {
          $stmt2->bind_param("is", $itemID, $itemSummary);
          $stmt2->execute();
          $stmt2->store_result(); // <-- this
          /*DO WHATEVER WITH STMT2*/
          $stmt2->close();
      }
   }
}