• ベストアンサー
※ 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が読み込めないエラーが発生しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

> $flagに"OK"が入りませんでした。 入らない原因として考えられるのは ・そのSELECTの結果が空(つまり結果がゼロ件)→だからwhile内が実行されない ・SQL文の文法ミスなどでprepareまたはexecuteが失敗 ・そもそもconnectでのデータベースへの接続に失敗している があります。 どこか失敗していないか確認してみては? > use autouseの書式は以下でよいのでしょうか? autouseはモジュールの遅延ロードを行うためのもののようですが、DBIを遅延ロードさせる必要があるのでしょうか? 普通に use DBI; でよいと思いますが遅延させたい特別な理由でもあるのでしょうか? http://slashdot.jp/~nekoie02/journal/ ↑を見るとautouse使用時の注意点が2点ほど書かれています。 読んでみてください。

noname#17299
質問者

お礼

SQLで持って来れていないようですね。 でも、PerlからでなくコマンドラインからMySQLに接続して、 同じSQL文を実行しても、正常に持ってきていました。 どこかに間違いがあるはずなので、探してみます。 また、遅延ロードというか動的なロードという意味で理解しています。 CGIの動作が重いので、DBにアクセスしないうちは、ロードしないほうが 動作が軽快になると思ったので、指定してみたかっただけです。 回答ありがとうございました。

関連するQ&A