bugfix> php > 投稿

私のコードは何か間違っているので動作していません、キーに名前付きパラメータを使用することは可能ですか?私はそれをハードコーディングせずに、SQLの変数部分に値を割り当てることができる場所に「username = aaron」にしようとしています。

$select = $conn->prepare("SELECT * FROM users WHERE :key =  :username ") ;
$select->execute([":key"=> "username", ":username"=> 'aaron' ]) ;

回答 2 件
  • :keyをユーザー名ではなく「username」に置き換えるため、クエリは次のようになります。

    SELECT * FROM users WHERE 'username' =  'aaron'
    
    

    SQLバインディングはもともと、定数(この例では列名)ではなく変数(変化するもの)を置き換えるために作成されました。

    それでもそのようなことをしたい場合は、->を使用せずに自分で何かをコーディングする必要があります。 メソッドを実行します。

  • 解決

    $key = "username" ; 
    $select = $conn->prepare("SELECT * FROM users WHERE $key =  :username ") ;
    $select->execute([ ":username"=> 'aaron' ]) ;
    
    

あなたの答え