PHP MYSQLI - 使用prepare语句更新现有数据库

时间:2015-04-29 18:54:51

标签: php mysqli

$updateData = $con->prepare("UPDATE target SET date=?, time=? WHERE plan_id=?, date=?, time=?");
$updateData->bind_param("iss", $plan_id,$date,$time);   

如您所见,我正在尝试根据日期和时间更新目标表以反映新的日期和时间。甚至可以这样做吗?或者我必须分成两个单独的准备调用(首先选择ID,然后更新)?

1 个答案:

答案 0 :(得分:1)

首先将WHERE子句中的逗号更改为AND' s

$updateData = $con->prepare("UPDATE plandetailmarker 
                             SET date=?, time=? 
                             WHERE plan_id=? 
                               AND placeName=? 
                               AND date=? 
                               AND time=?");

您只需确保绑定参数与查询中所需的数字匹配。

您的查询中有5个需要参数的项目,但您只能绑定3个

$updateData->bind_param("iss", $plan_id,$date,$time);   

应该更像这样 -

$updateData->bind_param("ssiss", $date, $time, $plan_id, $date, $time);

我强烈怀疑你的第一个日期和时间与第二个不同,所以你必须以不同的方式打电话给他们 -

$updateData->bind_param("ssiss", $new_date, $new_time, $plan_id, $date, $time);
相关问题