私はmysqlコマンドラインを書いているときに1行を返していますが、このコードは正しくありません。SQLクエリが0を返すのはなぜですか?実際のクエリは何でしょうか?
私のSQLクエリは次のとおりです。select f_name, l_name from user where f_name LIKE '%s%' or l_name LIKE '%s';
これは1行を返しています。
私はmysqlコマンドラインを書いているときに1行を返していますが、このコードは正しくありません。SQLクエリが0を返すのはなぜですか?実際のクエリは何でしょうか?
私のSQLクエリは次のとおりです。select f_name, l_name from user where f_name LIKE '%s%' or l_name LIKE '%s';
これは1行を返しています。
パラメータを使用すると、それらはそのまま送信され、必要に応じてエスケープされます。あなたはこれが最後の文字列が'%something%'
になり、これは、SQLクエリにエスケープされることを意味し
$q1 = "'%".$q."%'";
書きます。あなたはたぶん'
で始まり、終わる文字列を見つけたくないので、それらを削除して%something%
になるでしょう。
$q1 = "%".$q."%";
この方法を試してください。
中かっこで二重引用符を使用し、その中に変数を入れてください。
$q1 = "%{$q}%";
OR直接
$q1 = "%{$_GET['q']}%";
良いキャッチを書きます。さらに、この '$ q2'変数を取り除き、関数呼び出し自体でこれを構成する方が良いでしょう。 – tadman
オススメの質問を燃やす方が良い。 –
@PierreLebonこの場合、それはタイプミスではありません。文字列カテナネーションからパラメータに移動する方法については誤解です。初心者には間違いがあり、分かりにくいのは間違いです。重複がない限り、それは他人を助けるかもしれない。 –