Réj*_*ôme 4 php keyword preg-match
当然是一个简单的问题,但我无法解决...
我只是想检测我的sql查询是以"select"还是其他任何东西开头.这段代码似乎不起作用:
if (preg_match("/^(select)/i", $sql) > 0)
{
// SELECT query
}
else
{
// other query
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助 !
[编辑]好的,我有根本原因:我可能在关键字"选择"之前有空格,制表符和换行符...
不需要正则表达式,使用stripos
$query = "SELECT * FROM table WHERE field = 1";
if (stripos(trim($query), "SELECT") === 0)
echo "Query begins with $str";
else
echo "Query DOES NOT begin with $str";
// Notice: trim() will remove whitespace before and after your $query string.
Run Code Online (Sandbox Code Playgroud)
或者,如果你想坚持使用preg_match:
if (preg_match("/^select (.*)/i", trim($query)) > 0) {
//...
Run Code Online (Sandbox Code Playgroud)