У меня странная проблема с PDO.Код выглядит так:
$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$sth = $dbh->prepare("SELECT ... FROM .... ");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
if (!$result) {
print_r($dbh->errorInfo());
print_r($sth->errorInfo());
}
} catch(PDOException $e) {
print_r($e->getMessage());
}
Так что это очень распространенное использование PDO.И код работает, как и ожидалось, большую часть времени.Но иногда $result
ложно.Что странно, так это то, что и PDO :: errorInfo (), и PDOStatement :: errorInfo () возвращают пустой массив следующим образом:
array(3) {
[0]=> string(5) "00000"
[1]=> NULL
[2]=> NULL
}
Я подозреваю, что есть некоторые проблемы с подключением MySQL, однако подключение работает нормально, неНикаких исключений, сервер MySQL простаивает, достаточно подключений.В журнале MySQL или PHP нет ошибок.
Итак, мой вопрос: как устранить эту проблему?Мне нужно знать, почему иногда fetch () завершается с ошибкой и отсутствует информация об ошибке в errorInfo ()