gpt4 book ai didi

php - mysqli->query 在更新时返回 true,但没有行受影响

转载 作者:行者123 更新时间:2023-11-29 06:04:21 24 4
gpt4 key购买 nike

我在尝试更新 mysql 中的行时遇到了一些问题。

我尝试打印查询并在我的 sql 客户端中运行它,它会按预期更新行。

这一行:

$this->mysqli->query($query);

按预期返回 bool (true),并且根据 php 文档 (http://php.net/manual/en/mysqli.query.php) 是正确的。

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

public function query($query, $parameters = array()) {
if ((is_array($parameters) && count($parameters) > 0) || (is_string($parameters) && !empty($parameters))) {
$this->lastPrepared = true;

if ($this->prepare($query) === false)
return false;

$this->bind((is_array($parameters) ? $parameters : array($parameters)));
if ($this->execute() === false)
return false;
} else {
$this->lastPrepared = false;

if (!$this->stmt = $this->mysqli->query($query)) {
debug('Query failed: (' . $this->mysqli->errno . ') ' . $this->mysqli->error);
return false;
}
}

return $this->stmt;
}

我四处搜索,发现了与我的问题类似的问题,但没有一个答案能帮助我找到解决方案。

编辑:好的,所以我现在可以看到 $this->mysqli->affected_rows;返回-1,表示有错误。然而,mysqli->errno 和 mysqli->error 是空的。

我尝试运行的查询是:

UPDATE payments_scheduled SET active = 0 WHERE id=1 OR id=2

列:

id - 类型:int - 长度:10 - 额外:无符号,pk

事件 - 类型:tinyint - 长度:1 - 额外:无符号

最佳答案

更新 0 行不算失败,它仅表示根据选择标准没有要更新的行。在许多情况下,这是预期的行为,因此返回 true。

关于php - mysqli->query 在更新时返回 true,但没有行受影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42678027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com