null戻り値でのPHPPDOセグメンテーション違反エラー
-
27-09-2019 - |
質問
現在、freetdsを使用してMSSqlサーバーに接続し、そこで大量のアカウンティングデータを取得しています。データは、null値に達するまで正常に取り込まれます。その時点では、PHPエラーは発生していません。代わりに、apacheエラーログに次のエラーが表示されます。
[通知]子pid10235終了信号セグメンテーション違反(11)
これを検索して、このページを見つけましたが、実際に見つかりました本当に助けにはなりません。私が使用しているクエリは次のようになります ジェネラコディセタグプレ
そして、次のようなwhileループを使用してデータを取得しています ジェネラコディセタグプレ
これがPDO、データベースレイヤー、MSSQL、またはクエリの問題であるかどうかわかりません。また、クエリを取得し、MSSQL Studioを使用して手動で実行すると、正常に実行され、null値が正しく表示されることを指摘しておきます。
解決 2
この問題の1つの解決策は、ifnullステートメントをそのようにすべての戻り列に追加することで機能します。 ジェネラコディセタグプレ
nullが見つかった場合、エラーなしでゼロとして返されます。きれいではありませんが、機能します。
他のヒント
セグメンテーション違反に対処するのは楽しいことではありません。私があなたに与えることができる最善の答えは、セグメンテーション違反にぶつかる前に、さまざまなコーディングブロックでどれだけ離れているかを確認するために、さまざまな場所でdie('okay');
呼び出しを継続的に行うことです。(セグメンテーション違反があった場合は何も表示されません)
PHP、PDOなどのすべてを最新バージョンにアップグレードするだけでも価値があります。