アプリ版:「スタンプのみでお礼する」機能のリリースについて

Fatal error: Call to a member function bindValue() on a non-object in /home/アカウント名/www/index.php on line 487

というエラーが出てしまいました。

PHPバージョンはPHP 5.2.8です。

487行目前後のスクリプトは以下です。

if (!$smarty->is_cached(TEMPLATE_ARTICLE) or $page) {
//表示記事番号取得
$stmt = $pdo->prepare('SELECT no FROM ' . DATABASE_TABLE_ARTICLE . ' WHERE stat = 1 ORDER BY date DESC LIMIT :start, :limit');
$stmt->bindValue(':start', intval($configs['_blog']['page_size']) * $page, PDO::PARAM_INT);
$stmt->bindValue(':limit', intval($configs['_blog']['page_size']), PDO::PARAM_INT);
$flag = $stmt->execute();
if (!$flag) {
db_error($stmt->errorInfo());
}

DBはsqliteを使っています。

バインドができていないというエラーですが、どのような解決法があるでしょうか?よろしくお願いします。

A 回答 (3件)

>> Fatal error: Call to a member function bindValue() on a non-object



PDOのSQLiteドライバで読めないデータベースを使用しているか、データベース名を間違えている。
あるいは、何らかのPHPアクセラレータを使用していて、キャッシュが崩れているということは有りませんか?

前者なら、PDO経由でデータベースを作り直すとか
後者なら、キャッシュを消してみるなど
    • good
    • 0

「non-object(メソッドなんか持ってない)なのにメソッドを呼んだ」っていうエラーです。


よって、$stmt にちゃんとobject が入ってないんでしょうね。
$stmt = $pdo->prepare で、エラーがあると、$stmtにはfalseが入るから
次に行く前に if( $stmt !==false ){ で分岐して、実行した方がいいと思うけど。
デバッグのためには、prepared 文がどうなっているかを出力してみたり、sqliteがどういうエラーを出しているか、PDO->errorInfo() を調べて下さい。
    • good
    • 0

bindValue()関数のnon-objectじゃないのですか?


その関数はちゃんと参照出来ているのでしょうか?

後487行目のエラーという事は
その以前にエラーになっている理由が存在している可能性が高いと言えますけど
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!