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

mySQL LIKEクエリでPHP文字列を使用するにはどうすればよいですか?

    構文が間違っています。二重引用符で囲まれた文字列内にピリオドを配置する必要はありません。代わりに、もっと似ているはずです

    $query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");
    

    文字列を印刷して、最初のケースと同じであることがわかるようにすることで、これを確認できます。

    もちろん、それは良い考えではありません SQLインジェクションの危険性があるため、このように単純に変数をクエリ文字列に挿入します。少なくとも、mysql_real_escape_stringを使用して変数の内容を手動でエスケープする必要があります 、おそらく次のようになります:

    $sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
                   mysql_real_escape_string($prefix));
    $query = mysql_query($sql);
    

    sprintfの最初の引数の内側に注意してください 結果に1回表示されるようにするには、パーセント記号を2倍にする必要があります。



    1. null値を含む配列でPDOを実行する

    2. java.sql.SQLException:列インデックスが範囲外、0 <1

    3. Oracleセッションの言語を変更する方法

    4. 1つのデータベース内のMyISAMテーブルとInnoDBテーブル