MySQL — pdo_mysql сбой PHP на окнах

У меня были проблемы с использованием pdo_mysql в Windows. (Также попробовал с mysqli кратко.)
Он отлично работает на моем сервере Debian. Но так как компьютеры моей работы настроены с серверами wamp или xampp (пробовал оба), я не могу игнорировать проблему только с окнами.

В частности, это код, с которым у меня проблемы:

$sql  = "SELECT `TABLE_NAME`, `TABLE_ROWS` FROM ". "`information_schema`.`TABLES` WHERE `TABLE_SCHEMA` = ". ":schema AND `TABLE_NAME` NOT LIKE 'stf_%'";
$stmt = self::$pdo->prepare($sql);
$stmt->bindParam(':schema', self::$settings['schema']);
$stmt->execute();
$tables = $stmt->fetchAll(\PDO::FETCH_ASSOC);
$stmt->closeCursor();
unset($sql,$stmt);
$return = [];
for ($i = 0; $i < count($tables); $i++) {
$table = $tables[$i]['TABLE_NAME'];
$rows = $tables[$i]['TABLE_ROWS'];
$sql = "SELECT * FROM `{$table}`";
$stmt = self::$pdo->prepare($sql);
$stmt->execute();
// This piece fails in Windows:
$return[$table][] = $stmt->fetchAll(\PDO::FETCH_ASSOC);
// I've also tried using loops with fetch.
// They work for a few rows and then crash.
unset($table,$sql,$stmt);
}
var_dump($return);

Что происходит, он получает имя таблицы в определенной схеме, а затем должен вытянуть все содержимое этих таблиц в $return массив. когда fetchAll не удалось, я пробовал различные петли, все от foreach в while в for и это всегда приводит к краху PHP в тот или иной момент.

Когда В некоторых таблицах с более чем несколькими строками после определенного числа строк PHP внезапно завершает работу без появления каких-либо ошибок в каких-либо журналах. Мои журналы настроены на самые высокие уровни отладки, так как это среда разработки.

Вот именно то, что я получаю, когда это не получается:

HTTP / 1.1 200 ОК
Дата: ср, 03 июня 2015 13:55:29 GMT
Сервер: Apache / 2.4.12 (Win32) OpenSSL / 1.0.1l PHP / 5.6.8
X-Powered-By: PHP / 5.6.8
Последнее изменение:
Accept-Ranges: байты
Длина контента: 0
X-UA-совместимый: IE = край
X-Content-Type-Options: nosniff
Keep-Alive: тайм-аут = 5, максимум = 99
Подключение: Keep-Alive
Тип содержимого: text / html; charset = UTF-8

Из-за чего я не смог понять это.

По сути, я пытаюсь взять плохо написанную старую схему и организовать ее в PHP таким образом, чтобы это соответствовало нашей новой схеме. Поэтому я могу сделать один вызов для определенного фрагмента данных и получить его независимо от того, использует ли БД старую или новую схему. Итак … Обратная совместимость, в основном.

В любом случае, вот ссылка на данные, которые я получаю с сервера Debian, используя тот же код. (Доказательство, что это работает!)
http://deviousconcepts.com/

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]