現在はPDOを使用してクエリを実行するために、私は次のコード行を使用します。速記PDOクエリ
$stmt_test = $conn->prepare("SELECT * FROM status WHERE status_id = ?");
$stmt_test->execute([$id])->fetchAll(PDO::FETCH_ASSOC);
$result = $stmt_test->fetchAll(PDO::FETCH_ASSOC);
:
$sql = "SELECT * FROM myTable WHERE id = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':id', $id);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
そして、いくつかの研究の後、私は同じコマンドを実行するための簡単な方法を発見した
そこから私はおそらく次のコードでそれをさらに短くすることができると思った:
$stmt_test = $conn->prepare("SELECT * FROM status WHERE status_id = ?");
$result = $stmt_test->execute([$id])->fetchAll(PDO::FETCH_ASSOC);
しかし、私は、次のERを取得ROR:
Fatal error: Call to a member function fetchAll() on a non-object in /home/.../index.php on line 20
QUESTION:は、なぜ私はこのエラーを取得していますか?私の理解から、$stmt_test->execute([$id])
が最初に実行され、その結果、->fetchAll(PDO::FETCH_ASSOC)
が実行され、そこから配列が$result
に返されますが、エラーが発生しているので、ロジックに何か不備があります。私は間違って何をしていますか?また、誰も以前のクエリを実行するためのより簡略な方法を知っていますか?
の可能性のある重複[PDO - 非オブジェクト上()フェッチメンバ関数の呼び出し(http://stackoverflow.com/questions/ 12126193/pdo-call-to-a-member-function-non-objectを呼び出す) – johannes
@johannesエラーが同じ名前であっても、エラーが発生する状況は異なります。 – Webeng
ああ、十分に慎重に読んでいない、以下に答えます。 – johannes