Jestem w trakcie przekształcania aplikacji PHP z działania w środowisku Windows na środowisko oparte na systemie Linux.PDO dblib nextRowset nie działa
Wykorzystuje on PDO do uruchamiania procedur przechowywanych w bazie danych Microsoft SQL Server.
Zainstalowałem i skonfigurowałem PHP 5.6.22, Apache, freetds i pdo dblib, aby ułatwić aplikację.
Większość procedur wykonywanych w ramach procedury składowanej działa doskonale. Z wyjątkiem tych, które zwracają wiele zestawów wierszy.
Kiedy zadzwonić $pdo->nextRowset()
, otrzymuję ten błąd krytyczny:
SQLSTATE[HY000]: General error: PDO_DBLIB: dbresults() returned FAIL
Jedyne odniesienie znajdę to był błąd, podano w PHP 5.6.9, która została ustalona.
Jednak otrzymuję ten sam problem w PHP 5.6.22.
Czy ktoś ma jakieś pomysły, dlaczego tak się dzieje i jak mogę to rozwiązać?
Czy możesz zwrócić bardziej szczegółowy błąd niż niepowodzenie, modyfikując to ustawienie w 'php.ini', aby uzyskać szczegółową informację o błędach (przepraszam, nie dotykałem PHP od lat lub chciałbym być bardziej szczegółowy). Jeśli uda nam się uzyskać rzeczywisty błąd FreeTDS w celu wypuszczenia baniek na powierzchnię, będzie to znacznie łatwiejsze do zdiagnozowania, ponieważ prawdopodobnie zamienisz sterownik SQL Server w systemie Windows na FreeTDS w systemie Linux. – FlipperPA
PHP jest na najwyższym poziomie gadatliwości i wyświetla tylko komunikat o błędzie z mojego pytania. – Jamesking56
Po prostu sprawdzenie, czy uruchomiłeś procedurę przez pobranie? – Ctc