人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perl からMYSQLのクエリを以下のように送りました。

my $sth = $db->prepare("SELECT DATE_FORMAT(time, '%H:%i:%s') = '05:34:00' from table");

while (my @rec = $sth->fetchrow_array) {

#何か処理する

}

しかし、
while (my @rec = $sth->fetchrow_array) {
でエラー(DBD::mysql::st fetchrow_array failed: fetch() without execute() )が起こります。

%H:%i:%sの部分が原因ではないかと思っていますが、%H:%i:%sを\%H:\%i:\%sとしたりと試してみたのですが、うまく行きませんでした。

どのようにすればよいでしょうか?

●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 匿名回答1号

DATE_FORMAT(time, '%H:%i:%s') = '05:34:00' は Where句です。

select * From table
where
DATE_FORMAT(time, '%H:%i:%s') = '05:34:00'


匿名質問者さんのコメント
ありがとうございます。

2 ● 匿名回答2号
ベストアンサー

エラー文の通りです「DBD::mysql::st fetchrow_array failed: fetch() without execute() 」→ fetchrow_array が失敗しました。execute()を呼ばずにfetch()を試みました

my $sth = $dbh->prepare(...);
$sth->execute( @bind_params );
while ( .... $sth->fetchrow_array ) {
....
}

のようにする必要があります。
DBIのPODを読みましょう! http://perldoc.jp/docs/modules/DBI-1.612/DBI.pod


匿名質問者さんのコメント
出来ました。ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ