使用运行更新时,我遇到了一个奇怪的情况$wpdb->query()
.
鉴于users
表,带列user_id
(主键)和status
, 并且用户3已存在且状态为0,我运行以下查询:
update users
set status = 8
where user_id = 3
在我的计算机上,使用
$wpdb->query
, 我得到的结果是1:1行受影响。
在另一台机器上,我用PHP代码运行查询,总是得到0行:在运行查询之前,我检查了状态,结果是0,如果我用另一个工具(例如命令行mysql客户端)运行它,它会告诉我这是1个受影响的行。
wpdb的查询方法返回更新时受影响的行数(https://codex.wordpress.org/Class_Reference/wpdb#Running_General_Queries).
我的机器和远程机器有相同的PHP版本(5.4.40)、相同的mysql服务器版本和相同的wordpress版本(4.2.2)。关于mysql PHP扩展,我在本地安装了mysql、mysqli和mysqlnd:在另一台机器上,我安装了mysql和mysqli。
有没有人对可能的原因有一些线索?非常感谢。
Edit 1
我还尝试使用
the update
method, 但结果始终是0行受影响。我开始想,我发现$wpdb抽象层中存在不连贯性。