ボタンをクリックすると、自分で書かれたAPIにAJAX呼び出しが行われます。ボタンをクリックすると、Javascriptファイルはクリックされたオブジェクトから2つのdata
属性を取得し、URLとともに送信します。この2つの変数は、まだ実行されているSQL文のwhere句で使用されます。Laravelクエリで変数値の代わりに疑問符が返される
呼び出しが行われると、APIリクエストを処理するPHPスクリプトは、Input::get('data-attribute-one'))
とInput::get('data-attribute-two'))
で2つの変数を受け取ります。これら2つの属性を出力すると、正しい値が表示されます。
しかし、私はそうのように、私のクエリのWHERE句に変数を入れたとき:
$fans = Sensor::where('fan_number', '=', $dataAttributeOne)->where('created_at', '>=', $this->now->subHours(6))->get();
は結果が返されません。だから私は、クエリをチェックする->toSql()
で->get()
を交換し、それがコードのこの奇妙なラインで私を提示:
Object {fans: "select * from "myawesomedatabasetable" where "fan_number" = ? and "created_at" >= ?"}
$dataAttributeOne
取り出さdata-atribute
と$this->now->subHours(6)
は、現在の時刻マイナス6時間です。私が出力するとき、それはデータベースのcreated_at
の値と同じフォーマットであり、PhpmyadminのSQLステートメントにハードコードすると、そのクエリはチャームのように実行されます。だから問題はない。
私の質問は、クエリが実行されるときに変数が疑問符に変わる理由と、これをどのように解決するのですか?
ありがとうございます!
[プリペアドステートメント](https://en.wikipedia.org/wiki/の一環として、あなたの質問 '彼らはプレースホルダている場合、クエリexecutes'なぜ変数が疑問符に回っているに簡単な答えPrepared_statement)それはアレクセイがあなたの解決策であると答えたように、それは** **実行されていません。 – ash