3
$stmt = $mysqli->prepare("SELECT vin FROM jobs WHERE out between ? and ?");
        $stmt->bind_param('ss', $startday, $endday);


        $startday = '2013-01-01';
        $endday = '2013-12-31';

        $stmt->execute();
        $stmt->store_result();

        $stmt->bind_result($vin);
echo $vin;

上記のコードは、ステートメントの中間部分を削除すると、クエリが機能するこのエラーを発生させます。列名を括弧で囲んでみましたが、クエリも殺されるので、それらを削除する必要がありました。問題は between 句にあるようです。使用方法がわからないだけかもしれません。助けてください

Fatal error: Call to a member function bind_param() on a non-object
4

1 に答える 1

3

問題はBETWEEN句ではなく、予約済みキーワードOUTを列名として使用することです。この作業を維持する方法は 2 つあります。

1つは、バッククォートでラップすることです。

$stmt = $mysqli->prepare("SELECT vin FROM jobs WHERE `out` between ? and ?");

もう 1 つはALIAS、テーブルに を指定し、それを列名で使用することです。

$stmt = $mysqli->prepare("SELECT vin FROM jobs a WHERE a.out between ? and ?");
于 2013-04-04T00:27:58.537 に答える