2011-06-30 6 views
0

$ userid = mysqli_real_escape_string($ link、$ _SESSION ['user'] [0]); $ lastid = mysqli_insert_id($ link);mysqli_multi_queryは最初のクエリのみを実行しますが、不足していると思われるものは何ですか?

mysqli_autocommit($link, FALSE); 

    //make the string 
    $sql = "INSERT INTO district (DistID, Dist, UserID) VALUES(NULL, '".$dist->getDist()."', '".$userid."');"; 
    $sql .= "INSERT INTO lok (LocID, Loc, DistID) VALUES(NULL, '".$loc->getLokal()."','".$lastid."');"; 
    $sql .= "INSERT INTO schedule (SchedID, Mon, LocID) 
       VALUES(NULL, '".$sched->getMon()."', '".$lastid."')"; 

    // execute query 
    if ($result = mysqli_multi_query($link, $sql)){ 
     do { 
      if ($result = mysqli_use_result($link)) { 
      while ($row = mysqli_fetch_row($result)) { 
       } 
      mysqli_free_result($result); 
     } 
     } while (mysqli_next_result($link)); 

     mysqli_commit($link); 

    } 
    else 
    { 
     mysqli_rollback($link); 
    } 
     mysqli_close($link); 
+0

私は自分のコードを変更してmysqli_use_resultを使用しましたが、それでも私には同じ結果が得られます。データベースをチェックすると、最初のクエリだけが実行されました。 – joel

答えて

0

あなたは、最初のクエリの結果をmysqli_use_resultまたはmysqli_store_resultを使用する必要があります。

+0

私は自分のコードを変更してmysqli_use_resultを使用しますが、それでも私には同じ結果が得られます。データベースをチェックすると、最初のクエリだけが実行されました。たぶん私はそれを使用しているか、またはステートメントを間違った場所に置いています。方法を教えてください。 – joel

関連する問題