1
不知道为什么这不起作用。我按照完全相同的过程(即准备,绑定,执行)在同一个数据库上执行SELECT。但由于某种原因的更新不会在数据库中更新。PHP MYSQLI编写的update语句不起作用?
下面是代码:
$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);
- 在声明结尾处尝试使用和不使用“;”,因为它使用w使用程序版本而不是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';");
非常好的建议,我什至没有想到这一点。所以这给了我一个更好的想法,因为$ key_text_id是一个int,所以我做了这个改变,但奇怪的是$ contact_id被存储为一个varchar?我想现在可能与'given_date = CURRENT_DATE()'函数有关。因为我的测试页甚至没有吐出原本放在脚本顶部的html。 非常感谢您的建议 – 2014-11-08 18:17:04
'given_date'列类型为'DATE','DATETIME'或'TIMESTAMP'? – EternalHour 2014-11-08 18:22:49
'given_date'在数据库中输入'date' – 2014-11-08 18:28:37