- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQLとの接続でfetchrow_arrayがwhile文で使えない)
MySQLとの接続でfetchrow_arrayがwhile文で使えない
このQ&Aのポイント
- MySQLをPerlから使用する際、fetchrow_arrayをwhile文で使用することができません。
- PerlとMySQLのバージョンはそれぞれv5.8.5と5.1.6-alphaです。
- また、use autouseの書式は「use autouse DBI;」となりますが、DBIが読み込めないエラーが発生しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> $flagに"OK"が入りませんでした。 入らない原因として考えられるのは ・そのSELECTの結果が空(つまり結果がゼロ件)→だからwhile内が実行されない ・SQL文の文法ミスなどでprepareまたはexecuteが失敗 ・そもそもconnectでのデータベースへの接続に失敗している があります。 どこか失敗していないか確認してみては? > use autouseの書式は以下でよいのでしょうか? autouseはモジュールの遅延ロードを行うためのもののようですが、DBIを遅延ロードさせる必要があるのでしょうか? 普通に use DBI; でよいと思いますが遅延させたい特別な理由でもあるのでしょうか? http://slashdot.jp/~nekoie02/journal/ ↑を見るとautouse使用時の注意点が2点ほど書かれています。 読んでみてください。
お礼
SQLで持って来れていないようですね。 でも、PerlからでなくコマンドラインからMySQLに接続して、 同じSQL文を実行しても、正常に持ってきていました。 どこかに間違いがあるはずなので、探してみます。 また、遅延ロードというか動的なロードという意味で理解しています。 CGIの動作が重いので、DBにアクセスしないうちは、ロードしないほうが 動作が軽快になると思ったので、指定してみたかっただけです。 回答ありがとうございました。