下面我有两个准备好的陈述,查询& QUERY2;
con是连接var
第一个查询运行正常并更新数据库。
第二个查询没有更新任何内容,但它没有给出任何错误。
当我查看“成功”运行后记录的第二个查询时,inserted变量看起来像一个空字符串。即RESTI
=''
为什么会这样?我的代码是否以正确的顺序运行第二个查询?
$row = 1;
$con=mysqli_connect("connect info");
if (mysqli_connect_errno())
{
//echo "Failed to connect to MySQL Error 1: " . mysqli_connect_error();
//error reporting done here
}
else
{
$con->autocommit(false);
$query = $con->prepare("UPDATE table where `INDEX`=?");
$query2 = $con->prepare("UPDATE table2 where (SELECT column from table where`RESTI`=?)");
$query->bind_param('i', $row);
$query2->bind_param('i', $row);
if($query->execute() == false)
{
//Failed!
/ERROR HANDLING
}
else
{
//SUCCESS
}
if($query2->execute() == false)
{
//Failed!
/ERROR HANDLING
}
else
{
//Success
}
$con->commit();
$query->close();
$query->close();
}
mysqli_close($con);
答案 0 :(得分:0)
以下是您的更新声明应如何:
"UPDATE table SET column=<new value to set> WHERE INDEX=?"
"UPDATE table2 SET <col to update>= (SELECT column from table where`RESTI`=?) WHERE condition
确保RESTI是一个唯一字段,子查询只返回标量值