繁体   English   中英

PHP中的两个插入语句

[英]Two insert statements in php [duplicate]

嗨,大家好,我如何在php代码中使用两个insert语句将数据存储到数据库中的两个不同表中?

$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);

您应该使用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();

看看交易可能是什么? http://php.net/manual/zh/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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM