Учитывая что-то вроде
DB()->prepare("SELECT * FROM mysql.general_log WHERE user_host LIKE ?");
$statement->execute( array('%console%') );
foreach($statement as $record){
var_dump($record);
}
Содержимое general_log:
*************************** 1. row ***************************
event_time: 2011-04-20 14:27:59
user_host: REDACTED[REDACTED] @ REDACTED [192.168.56.101]
thread_id: 30
server_id: 0
command_type: Connect
argument: REDACTED@REDACTED on REDACTED
*************************** 2. row ***************************
event_time: 2011-04-20 14:27:59
user_host: REDACTED[REDACTED] @ REDACTED [192.168.56.101]
thread_id: 30
server_id: 0
command_type: Query
argument: SELECT * FROM mysql.general_log WHERE user_host LIKE '%console%'
Я работаю в рамках мерзости (без юнит-тестов, без документации, без правил и причин).) поэтому возможно, что где-то кто-то явно отключил MySQL, подготовив операторы, заставляющие PDO использовать эмулируемый режим ... или это ожидаемое поведение?
PHP - это PHP Version 5.2.10-2ubuntu6
Драйвер PDO для MySQL, версия клиентской библиотеки 5.1.41
Обновление: PDO () создается со следующими атрибутами
PDO::ATTR_PERSISTENT => false
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
Я просмотрел документацию по PDO, но, к сожалению, нет упоминания о флаге, подобном приведенному.написано о этом аналогичном вопросе