/ /句読点のようにドットを使用し、PHPでは追加しない方法-php、mysql

句読点としてドットを使用し、PHPで追加しない方法 - php、mysql

PHPでSQLクエリを組み合わせています。句読点でドットを宣言するにはどうすればよいですか?

要求されたサンプルコード:

$sql="SELECT COUNT(*) FROM Table1 WHERE LOWER(location2) REGEXP ".* .$location .*"";

見る .* は正規表現であり、PHPによって連結として解釈されるべきではありません。

回答:

回答№1は0

これは、PHP構文とは関係ありません。あなたの例には . PHPが解釈する引用符で囲まれた文字列内 . 引用符で囲まれた文字列内。したがって、そこには何も問題はありません。

おそらく発生しているのは、MySQLが処理していることです . 正規表現のワイルドカード演算子として。正規表現構文(MySQL、PHP、Perl、どこでも) . は、任意の1文字に一致するワイルドカードです。リテラルを含める場合 . 正規表現では、エスケープする必要があります。 ..

文字列内の文字列内で使用しているため、エスケープする必要もあります 文字を使用して、正規表現に正しく到達できるようにします。テストせずに、2回(PHPでは1回、MySQLでは1回)エスケープする必要があると言います。 ""\\."" PHPでは "\." MySQLでは、 . 正規表現で。

(明らかに、 . 文字通りに扱われることを意図した文字-私は仮定します .* 任意の文字と一致することを意図しています-これらは変更しないでください。)