我有一个非常简单的SELECT查询内返回false(失败)的PHP类的上下文,但我无法检索相关的错误信息。奇怪的是,调用工作正常,直到我不得不重新组织mysql数据库 - 没有修改PHP代码显然失败 - 结果是错误的 - 但错误信息在哪里?mysqli查询返回false但没有错误消息
代码如下:
<?php
class Database {
private $_connection;
private $_result;
private $_lastQuery;
private $_error;
public function __construct($dbase) {
$this->_connection = new mysqli(DB_SERVER, DB_USER, DB_PASS, $dbase);
if (mysqli_connect_error()) {
trigger_error("failed to connect to MySQL: " . mysqli_connect_error(), E_USER_ERROR);
}
mysqli_set_charset($this->_connection, 'utf8');
}
public function query($query) {
$this->_lastQuery = $query;
$this->_result = mysqli_query($this->_connection, $query);
$this->_error = $this->_connection->error;
return $this->_result;
}
}
没有错误字符串出现在$此 - > _错误;在调试过程中(PHPStorm)检查时也没有显示。 通过命令行执行查询时,会生成(预期)错误消息。
$ this - > _ error从哪里来?它没有在你的数据库类中定义。 –
TBH,我不完全确定这一点,但不应该'$ this - > _ error = $ this - > _ connection-> error;'是$ this - > _ error = $ this - > _ connection - > _ error; '? –
为什么你要将查询结果存储在类变量中? –