WordPress查询未返回正确的值

时间:2020-01-06 作者:treyBake

根据this 页码:

Return#返回

(int | bool)布尔true,用于创建、更改、截断和删除查询。为所有其他查询影响/选择的行数。错误时布尔值为false。

由此,我可以看出我应该得到一个;“受影响的行数”;然而,返回的值是false。

通常,这表示一个错误,可以看到bool false on return=error。但这就是它变得有点奇怪的地方,数据被更新了,而查询显然是失败的?

这是我的当前代码:

if (!$this->conn->query($this->conn->prepare($this->qry, $values))) {
    var_dump($this->conn->print_error());
}
其中打印:

<div id="error"><p class="wpdberror"><strong>WordPress database error:</strong> []<br /><code>UPDATE `wp_eng_dm_dealers` SET name = &#039;foo&#039;, blurb = &#039;trey&#039;, email = &#039;[email protected]&#039;, tel = &#039;123456&#039;, www = &#039;https://google.com/&#039;, addr_line_1 = &#039;some place&#039;, addr_line_2 = &#039;&#039;, addr_line_3 = &#039;&#039;, town = &#039;A town&#039;, county = &#039;county&#039;, post_code = &#039;SOME PLACE&#039;, lat = XYZ, lng = XYZ, dealer_type_id = 1, dealer_of_the_month = 1 WHERE id = 4</code></p></div>NULL
使用last_error 财产,我得到:

字符串(0)“”"E;

解码包装在<code> 标记时,我得到一个有效的SQL语句,但我的条件从来都不起作用,因为WP将成功的更新返回为false。如何调试和解决问题?

WordPress版本:5.3.2

1 个回复
最合适的回答,由SO网友:treyBake 整理而成

事实证明,WordPress实际上会检查发布的数据是否与现有数据匹配,如果匹配,请不要执行任何操作并返回false。

我单击了我的更新按钮,希望它无论如何都能在数据库中更新,但事实并非如此:

enter image description here

摘自here