【发布时间】:2014-02-27 19:19:16
【问题描述】:
感谢您的宝贵时间。
下面我有两个准备好的语句,query & query2;
con 是连接变量
第一个查询运行良好,正在更新数据库。
第二个查询没有更新任何内容,尽管它没有给出任何错误。
当我查看“成功”运行后记录的第二个查询时,插入的变量看起来像一个空字符串。即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);
【问题讨论】:
-
所以我,这两个查询都没有意义 - 两者都没有更新任何东西
-
您如何看待更新数据库的第一个查询?另请注意,您不是关闭 query2,而是关闭第一个查询两次。这正是您的代码吗?
标签: php mysql sql prepared-statement prepare