如何在php中通过正则表达式查找PDO查询中的参数?
How to find parameters in PDO query by regular expression in php?
我有一个 sql 查询如下:
select * from tbl_test where id=:id and name=:name
现在我想从上面的字符串中提取所有变量。出于这个原因,我想在 php 中使用 preg_match()
函数。但是我不知道那个正则表达式怎么写
谁能帮我解决这个问题?
使用匹配=
前后字符串的模式/(\w+)=(:\w+)/
$str = "select * from tbl_test where id=:id and name=:name";
preg_match_all("/(\w+)=(:\w+)/", $str, $m);
print_r($m[2]);
输出
Array
(
[0] => :id
[1] => :name
)
您也可以使用 array_combine()
创建 key/value 数组
$arr = array_combine($m[1], $m[2]);
print_r($arr);
输出
Array
(
[id] => :id
[name] => :name
)
检查结果 demo
我有一个 sql 查询如下:
select * from tbl_test where id=:id and name=:name
现在我想从上面的字符串中提取所有变量。出于这个原因,我想在 php 中使用 preg_match()
函数。但是我不知道那个正则表达式怎么写
谁能帮我解决这个问题?
使用匹配=
/(\w+)=(:\w+)/
$str = "select * from tbl_test where id=:id and name=:name";
preg_match_all("/(\w+)=(:\w+)/", $str, $m);
print_r($m[2]);
输出
Array
(
[0] => :id
[1] => :name
)
您也可以使用 array_combine()
创建 key/value 数组
$arr = array_combine($m[1], $m[2]);
print_r($arr);
输出
Array
(
[id] => :id
[name] => :name
)
检查结果 demo