• ベストアンサー

SQLが走らない

なぜかSQLが走りません。 エラーもでません。 カテゴリーリンクを押したら、そのカテゴリに書いた記事が表示されるようにしています。 $stmt = $pdo->query('SELECT * FROM ' . DATABASE_TABLE_ARTICLE . ' LEFT JOIN ' . DATABASE_TABLE_CATEGORY . ' USING (cid) WHERE cid = :cid ORDER BY date DESC'); $stmt->bindValue(':cid', $cid, PDO::PARAM_INT); if (!$stmt) { db_error($pdo->errorInfo()); } 1.$cidの値は取れています。 2.WHERE文をなくすと文が表示されます。 3.:cidに直接数字4とかを入れると大丈夫です。 4.cid = :cidのところがおかしいようです。 この記述どこか間違っているでしょうか? ほかの動いている部分のスクリプトをもってきているのですが・・・。

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

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

バインドが上手く言ってないようですね。 PHPのようですが、PDOでのバインドの方法って違ったような記憶があります・・・ 定かではないですがステートメントを取得するには query()じゃなくて prepare()じゃなかったでしたっけ? $stmt = $pdo->prepare('~省略 WHERE cid = :cid ORDER 以下略~'); $stmt->bindValue(':cid', $cid, PDO::PARAM_INT); if (!$stmt) { db_error($pdo->errorInfo()); }

Scotty_99
質問者

お礼

回答ありがとうございました。

その他の回答 (1)

  • dora7075
  • ベストアンサー率39% (103/261)
回答No.1

言語もDBの種類も不明ですが・・・ 上記で問題なのは ' USING (cid) WHERE cid = :cid ORDER BY date DESC' の「:cid」も文字列としているからです。変数として書きましょう。