我有一个非常简单的方法,但它出乎意料地在"返回"行处死亡并且没有抛出任何错误。我已经启用了错误报告E_All;我已经检查了阿帕奇error_log;
我错过了什么?
public function get_by_state_id(int $state_id){
$db = new mysqli('localhost', 'root', '', 'foo');
$query = "
SELECT *
FROM {$this->table}
WHERE state_id = ?
ORDER BY name";
if($stmt = $db->prepare($query)){
$stmt->bind_param('i',$state_id);
$stmt->execute();
$res = $stmt->get_result();
$rows = [];
while($obj = $res->fetch_object()){
$rows[] = $obj;
}
return $rows;
}
}
正如@Dharman指出的那样:该错误是由于回显了未逃脱的utf8字符。
在mysql连接之后添加这个解决了:
$db->set_charset('utf8mb4');
他还提供了一个链接来阅读更多关于它的信息:UTF-8 一直到。