2017-01-19 10 views
0

こんにちは皆、データベースの2つの異なるテーブルにデータを格納するためにPHPコードに2つの挿入ステートメントを持っていますか?PHPの2つの挿入ステートメント

$order = "INSERT INTO NewCase(CaseID, StaffName, Category, PriorityLevel, Status, Date, Summary, ResidentID) 
VALUES (NULL, '$staffname', '$category', '$prioritylevel', '$status', '$checkdate', '$summary', NULL)"; 

$order .= "INSERT INTO NewResident(ResidentID, NRIC, ResidentName, Telephone, Email, Gender, Street1, Street2, PostalCode) 
VALUES (NULL, '$nric', '$residentname', '$telephone', NULL, NULL, '$street1', '$street2', '$postalcode')"; 

$retval = mysqli_multi_query($link, $order); 
+0

[mysqli_multi_query](http://php.net/manual/en/mysqli.multi-query.php) –

答えて

-1

トランザクションがありますか? http://php.net/manual/en/mysqli.begin-transaction.php

mysqli_begin_transaction($link, MYSQLI_TRANS_START_READ_WRITE); 

mysqli_query($link, $order1); 
mysqli_query($link, $order2); 

mysqli_commit($link); 

mysqli_close($link); 

トランザクションは、いつでもまた

をロールバックすることができなかった場合も、私はあなたがより多くのオブジェクト指向のアプローチを使用することをお勧め:

$mysqli = new mysqli("localhost", "user", "password", "world"); 
$mysqli->query(); 
$mysqli->query(); 
$mysqli->close(); 
0

あなたはmysqliのに準備された文とそれ以外のを使用する必要があります。

$sql = "INSERT INTO NewCase VALUES (NULL, ?, ?, ?, ?, ?, ?, NULL)"; 
$stmt = $link->prepare($sql); 
$stmt->bind_param("ssssss",$staffname, $category, $prioritylevel, $status, $checkdate, $summary); 
$stmt->execute(); 

$sql = "INSERT INTO NewResident VALUES (NULL, ?,?,?, NULL, NULL, ?,?,?)"; 
$stmt = $link->prepare($sql); 
$stmt->bind_param("ssssss",$nric, $residentname, $telephone, $street1, $street2, $postalcode); 
$stmt->execute(); 
+0

こんにちは、それは同様に動作しませんを見てみましょう。 – helpmepls

+0

それはあなたが何か間違っているよりもうまくいかない場合。だから、コードを修正する必要があります。 –

+0

私はあなたのコードにいくつかの変更を加えました。何かエラーがあるかどうか私に助けてくれますか? – helpmepls