1

次のエラーは、mysql エラーを引き起こします。これは、クエリがパラメーターをステートメントにバインドしていないことが原因です。なぜこれが起こっているのかわかりません。

これは、else 句によって返されるエラーです。

ERROR -> 1064 : You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to
use near '? ORDER BY dateCreated DESC' at line 4`

問題のコードは次のとおりです。

$userId = 1;
if ($stmt = $link->query("
    SELECT o.id, dateCreated, firstValue
    FROM user_orders o 
    LEFT JOIN order_delivery d ON o.id = d.id 
    WHERE o.userId = ? 
    ORDER BY dateCreated DESC
"))
{
    $stmt->bind_param("i", $userId);
    $stmt->execute();
    $stmt->close();
}
else
{
    $pageContent = '
        <p>ERROR -> '.$link->errno.' : '.$link->error.'</p>
    ';

}

誰かが私がこれでどこを間違えたのか、そしてなぜこのmysqlエラーが発生しているのかを指摘できますか.

時間を割いて読んでいただきありがとうございます。

4

1 に答える 1

6

,を使用して、準備済みステートメントを準備しmysqli::prepareません。query

queryパラメータがバインドされるまで無効なクエリを実行しようとします。

于 2012-08-05T12:47:40.087 に答える