Простое регулярное выражение для обнаружения всех операторов CRUD sql, используемых с функциями (при условии, что $ script содержит весь скрипт php)
preg_match_all('/\(\s*?"(?:SELECT|INSERT|UPDATE|DELETE) .*?"\s*?\)\s*?;/is',
$script, $matches);
Он должен соответствовать всем возможным операторам SELECT, INSERT, UPDATE, DELETE, если они помещены в круглые скобки и двойные кавычки. Он не учитывает регистр и должен соответствовать операторам, которые также охватывают несколько строк.
edit # 1: Regex для сопоставления оператора CRUD, такого как строковые назначения;
preg_match_all('/\$\w+\s*?=\s*?"(?:SELECT|INSERT|UPDATE|DELETE) .*?"\s*?;/is',
$script, $matches);
edit # 2:
// $variable detecting version of #1 regex
preg_match_all('/\(\s*?"(?:SELECT|INSERT|UPDATE|DELETE) .*?(?:\$\w+){1}.*?"\s*?\)\s*?;/is',
$script, $matches);