【发布时间】:2015-01-05 08:52:03
【问题描述】:
不知道为什么这不起作用。我按照完全相同的过程(即准备、绑定、执行)在同一个数据库上执行 SELECT。但是由于某种原因更新不会在数据库中更新。
代码如下:
$stmtUpdate = $mysqli->prepare("UPDATE license_keys.$injection_key_text_type
SET given_date = CURRENT_DATE(), contact_email = ?, given_bool = ?, contact_id = ?
WHERE key_text_id = ?;";
$stmtUpdate->bind_param("siss",$recipient_email,1,$contact_id,$key_text_id);
$stmtUpdate->execute();
$stmtUpdate->close();
我尝试过的事情
- 将第一行包装在 if 语句中
- 将
given_date = CURRENT_DATE切换为given_date = ?,然后在我的绑定参数中添加一个任意字符串,即($stmtUpdate->bind_param("ssiss","11-8-2014",$recipient_email,1,$contact_id,$key_text_id); - 尝试使用和不使用“;”在语句的末尾,因为它适用于程序版本,但不适用于 OO 方式。
还要注意,如果我以程序方式运行它,它工作得很好,但我需要它使用准备好的语句来工作。 这是程序代码:
$mysqli->query("UPDATE license_keys.$injection_key_text_type
SET given_date = CURRENT_DATE(), contact_email = '$recipient_email', given_bool = 1, contact_id = '$contact_id'
WHERE key_text_id = '$key_text_id';");
【问题讨论】:
标签: php mysqli prepared-statement