【发布时间】:2021-07-13 04:19:26
【问题描述】:
这是我的查询
$q = "
SELECT * FROM tbl_accounts
UNION
SELECT * FROM tbl_transactions
UNION
SELECT * FROM tbl_jobcards
UNION
SELECT * FROM tbl_accounts
";
这是给表格添加前缀的函数(这个函数取自MySqliDB类)
function rawAddPrefix($query,$prefix){
$query = str_replace(PHP_EOL, null, $query);
$query = preg_replace('/\s+/', ' ', $query);
preg_match_all("/(from|into|update|join) [\\'\\´]?([a-zA-Z0-9_-]+)[\\'\\´]?/i", $query, $matches);
list($from_table, $from, $table) = $matches;
return str_replace($table[0], $prefix.$table[0], $query);
}
当我回显rawAddPrefix($q,"demo_") 时,我只会将前缀添加到tbl_accounts 表中。我需要为所有表添加前缀。
这里有什么问题?
【问题讨论】:
标签: php str-replace