【发布时间】:2020-03-20 03:25:11
【问题描述】:
我有这段代码可以做所有事情我只是无法将@new_spec_id 值传递到write_MySQL_log。 当前代码只是将@new_spec_id 写入日志函数。女巫完全奇怪,因为我将 @new_spec_id 值正确传递给其他查询。如果我把它改成 $spec_id 一样的东西。它只是将其写为文本 $spec_id。
我在其他页面上有类似的东西,我可以将 $spec_id 传递到日志中。
mysqli_query($con,"START TRANSACTION");
$a1 = "SELECT @new_spec_id:=COALESCE(MAX(spec_id),0) FROM SPEC;";
$query1 = mysqli_query($con, $a1);
write_mysql_log("Izrađena specifikacija ID: @new_spec_id", $db);
$a2 = "UPDATE SPEC SET spec_iznos = '$value' WHERE spec_id = @new_spec_id;";
$query2 = mysqli_query($con, $a2);
if ($a1 and $a2) {
mysqli_query($con,"COMMIT");
} else {
mysqli_query($con,"ROLLBACK");
};
我试图定义它,但以太不起作用..
$log = "@new_spec_id";
write_mysql_log("Izrađena specifikacija ID: $log", $db);
编辑: 使它与另一个 SELECT 一起工作...
$sql = "SELECT MAX(spec_id) AS spec_id FROM SPEC";
$result = $con->query($sql);
// output data of each row
while($row = $result->fetch_assoc()) {
write_mysql_log("Izrađena specifikacija ID: " . $row["spec_id"], $con);
【问题讨论】:
-
我花了一段时间才弄清楚你在做什么如果你想写你必须获取结果的 Max id,用户定义的 mysql 变量在 php 中不起作用,但你当然可以做一个 SELECT @new_spec_id;但hwta的用途。
-
不应该这样工作吗:ID:$query1?不是。
-
让它在这段代码之外工作......
标签: php mysql transactions