我正试图制作一个脚本来扩展Zend返回的SQL视图并格式化此SQL代码,所以我想将"'n"插入mysql的保留字,并将"'n"answers"'t"插入表名称,字段名称等…
E。g(简而言之,我使用了更多的保留词来匹配):
$sql = "SELECT * FROM `table` WHERE `field` = 'value';";
输出:<>之前选择*从表格在哪里Field = 'value';之前我可以对str_replace做很多调用,但我需要这样的:
$sql = array('SELECT', 'FROM', 'WHERE', ... );
在$sql变量中返回"'nSELECT", "'nFROM", "'nWHERE"
其他字符我已经处理过了,问题是mysql保留字
什么线索吗?我尝试preg_replace,但它仍然删除匹配。
你可以试试这个
$keywords = array(
"select",
"update"
); //etc
$sql = SELECT * FROM`table`WHERE`field` = 'value';
$tokens = explode(" ", $sql);
foreach($tokens as $token)
{
// if token in $keywords print 'n along with value else print as it is ..
if (in_array($token, $keywords))
{
echo $token . "'n";
}
else
{
echo $token;
}
}