Я в процессе преобразования PHP-приложения из среды Windows в среду на основе Linux.PDO dblib nextRowset не работает
Он использует PDO для запуска хранимых процедур в базе данных Microsoft SQL Server.
Итак, я установил и настроил PHP 5.6.22, Apache, freetds и pdo dblib для облегчения приложения.
Выполнение большинства хранимых процедур отлично работает. Кроме тех, которые возвращают несколько наборов строк.
Когда я называю $pdo->nextRowset()
, я получаю эту фатальную ошибку:
SQLSTATE[HY000]: General error: PDO_DBLIB: dbresults() returned FAIL
Единственная ссылка, которую я могу найти, чтобы это была ошибка, сообщили в PHP 5.6.9, которая была исправлена.
Однако, я получаю ту же проблему в PHP 5.6.22.
Есть ли у кого-нибудь идеи, почему это происходит и как я могу это решить?
Возможно, вы вернете более подробную ошибку, чем сбой, изменив настройку в 'php.ini' для многословности ошибок (извините, не трогали PHP за годы или я бы более конкретно). Если мы сможем получить фактическую ошибку FreeTDS, чтобы пузыриться на поверхности, это было бы намного легче диагностировать, так как вы, вероятно, замените драйвер SQL Server на Windows для FreeTDS в Linux. – FlipperPA
PHP находится на высокой частоте и только показывает сообщение об ошибке в моем вопросе. – Jamesking56
Просто проверьте, выполнили ли вы процедуру через fetchall? – Ctc