PHP 7:意外死亡,没有错误消息



我有一个非常简单的方法,但它出乎意料地在"返回"行处死亡并且没有抛出任何错误。我已经启用了错误报告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 一直到。

最新更新