I have this query using pdo:
x
SELECT * FROM users WHERE name LIKE :name AND age > :age1 AND age < :age2
how can I extract the parameters from this query with a regular expression in order to get an array similar to:
$arr[0] => name,
$arr[1] => age1,
$arr[2] => age2
Advertisement
Answer
Try this on for size..
(:[^s]*)s?
Here is a demo to this REGEX in action using regexr.com
And here is a demo in PHP
test.php
$query="Select * from users where name like :name and age > :age1 and age < :age2";
preg_match_all('/(:[^s]*)s?/',$query,$matches);
print_r($matches);
Output of php test.php
Array
(
[0] => Array
(
[0] => :name
[1] => :age1
[2] => :age2
)
[1] => Array
(
[0] => :name
[1] => :age1
[2] => :age2
)
)