sql >> データベース >  >> RDS >> Mysql

Mysqliパラメータバインディングの問題

    $suquery=$dbCon->prepare("select * from Table where ? LIKE ?");
    

    期待どおりに動作しません。次のように翻訳されます:

    SELECT * from table WHERE 'columnName' LIKE '%a%'
    

    'columnName'には'a'が含まれているため、これはすべての行を返します。 'columnName'は文字列であり、実際の列名ではありません。

    用語に余分な引用符があることを除いて、2回目の試行は正しいです。パラメータを使用する場合、引用符は必要ありません。解決策は次のとおりです。

    $term = "%".$_POST['searchTerm']."%";
    $suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
    $suquery->bind_param('s', $term);
    $suquery->execute();
    


    1. 結合に存在しないレコードを削除する

    2. Oracleストアドプロシージャ内の更新ステートメントが機能していません

    3. 無効なダンプ形式pgbackups:Dropboxダウンロードリンクでも復元

    4. 上位N行をフェッチするデータベースに依存しないSQLクエリはありますか?