PDO :: MYSQL_ATTR_INIT_COMMAND가 쿼리를 분석 한 것 같습니다. 직접 시도하십시오.MYSQL_ATTR_INIT_COMMAND가 사용 된 경우 PDO 발생 오류
다음 :
$connection = new \PDO("mysql:host=localhost;dbname=php_orm_test", "dev", "dev",[
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8; SET CHARACTER SET UTF8; SET character_set_connection=UTF8; SET character_set_client=UTF8;"
]);
$statement = $connection->prepare("describe users");
$statement->execute();
$statement->fetchAll(\PDO::FETCH_ASSOC);
var_dump($statement->errorInfo());
$statement->closeCursor();
예외 :
array(3) {
[0]=>
string(5) "00000"
[1]=>
int(2014)
[2]=>
string(269) "Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute."
}
I ...을 MYSQL_ATTR_INIT_COMMAND 모든 것을 대신 잘 작동 어떤 생각을 제거하면? 심지어이 작업을 수행
공지 사항 ...
PDO::MYSQL_ATTR_INIT_COMMAND => self::DRIVER_INIT,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
"SET NAMES UTF8; SET CHARACTER SET UTF8; SET character_set_connection = UTF8; SET character_set_client = UTF8;"을 의미합니까? 쿼리? mysql.cnf를 수정하지 않고 utf8 인코딩을 사용하려면. 어쨌든 고마워! –
참고로 utf8 대신 utf8mb4를 원할 수도 있습니다. https://mathiasbynens.be/notes/mysql-utf8mb4를 참조하십시오. – bodo