【发布时间】:2017-07-29 09:59:06
【问题描述】:
我在尝试更新 mysql 中的行时遇到了一些问题。
我尝试打印查询并在我的 sql 客户端中运行它,它会按预期更新行。
这一行:
$this->mysqli->query($query);
按预期返回 bool (true),根据 php 文档 (http://php.net/manual/en/mysqli.query.php) 是正确的。
失败时返回 FALSE。对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询,mysqli_query() 将返回一个 mysqli_result 对象。对于其他成功的查询,mysqli_query() 将返回 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 payment_scheduled SET active = 0 WHERE id=1 OR id=2
列:
id - type: int - length: 10 - extra: unsigned, pk
活动 - 类型:tinyint - 长度:1 - 额外:无符号
【问题讨论】:
-
我没有看到查询 .. 可能是您的查询工作正常但不匹配行..
-
但是如果我输入 var_dump($query);在查询函数中复制该查询并将其粘贴到我的 sql 客户端中,它工作得很好。那么问题的根源一定在上面的函数之内?
-
显示查询..更好..
-
所有列类型都是数字?
-
表格是否由某些 IDE 操作查看? .. 尝试退出 IDE 并重新打开