この質問の仕方がよくわからないので、事前にお詫びします。何かを知る必要がある場合は、反対票を投じるのではなくコメントしてください。編集します。
メインページにティーザーリンクがあり、クリックすると記事全体のウィンドウが開きます。現在、MySQLコードをPDOに変換していますが、少し行き詰まっています。
MySQLでは、以前は次のことを行っていました(ここでは、$ foo_queryは最初のページからのクエリです)。
$id = $_GET['id'];
$sql = "SELECT id, postdate, title, body FROM FooBarTable WHERE id = $id";
if ($foo_query = mysql_query($sql)) {
$r = mysql_fetch_assoc($foo_query);
$title = $r["title"];
$body = $r["body"];
}
これは私には簡単に理解できます。私は自分が知っていることを使ってこれを変換しようとしてきましたが、あまり知らないことがわかりました。これまでのところ、私は次のものを持っています:
$id = $_GET['id'];
$sql = $DBH->prepare("SELECT id, postdate, title, body FROM FooBarTable WHERE id = :id OR id = $id");
$sql->bindParam(':id', $_REQUEST['id'], PDO::PARAM_INT);
if ($foo_query = $DBH->query($sql)) {
$r->setFetchMode(PDO::FETCH_ASSOC);
$r = $foo_query->fetch();
$title = $r["title"];
$body = $r["body"];
}
$sql->execute();
これにより、「PDO :: query()はパラメータ1が文字列であると想定している」というエラーが発生します。これは「if」行用です。
そのPDOのいずれかを正しく書いたことはありますか?ここから何をする必要がありますか?友人が最近MySQLを教えてくれましたが、彼はPDOをまったく知らないので、私は彼のアドバイスを求めることができません(それほど役に立ちません...)