MDB2 Error: not found が出た時に確認したい事項まとめ
1. ドライバのインストールが済んでいるかどうか
簡単な select * from table とかを試してみてもこのエラーが出る場合は、使用するDBのドライバが入っていない可能性が高いのでインストール。
mysqlなら pear install MDB2_Driver_mysql を実行。
2. プレースホルダのパラメータと値の数があっているかどうか
プレースホルダを使ったときにこのエラーがでた場合、パラメータ「?」の数とセットする値の数が違っていないかチェック。
例えば↓こんなことになっていないかなど。
ダメな例)
$row = array(1, 2); #=>セットしてる値は2つ $sth = $mdb2->prepare('INSERT INTO table VALUES (?, ?, ?)'); #=>パラメータは3つ $sth->execute($row);
OKな例)
$row = array(1, 2, 3); $sth = $mdb2->prepare('INSERT INTO table VALUES (?, ?, ?)'); $sth->execute($row);
3. プレースホルダのパラメータをシングルクォートで囲ってたりしないか
今しがたしたミスだったのでメモ…。シングルクォートはいらないです。
ダメな例)
$sth = $mdb2->prepare("INSERT INTO table VALUES ('?', '?', '?')"); #=>「?」は囲まないで!!
OKな例)
$sth = $mdb2->prepare("INSERT INTO table VALUES (?, ?, ?)");