如何最好地修改带有表前缀的SQL查询

时间:2012-06-26 18:28:23

标签: php mysql prefix

我正在创建一个具有安装程序的新CMS。

我允许表名以自定义字符串为前缀。

使用前缀表名对sql进行modyfying的推荐方法是什么?

我是否必须将DB_PREFIX添加到每个查询中,或者在我的数据库类中通过modyfing sql有什么方法可以完成?

由于

2 个答案:

答案 0 :(得分:2)

一种技术是使用括号括起来的表编写所有SQL查询,并使用函数将这些大括号替换为所需的数据库前缀。

不使用标准SQL查询,而是使用例如大括号如:

//SQL query in your code
$query=prefixQuery("SELECT name FROM {customers} WHERE id=$id");

并定义将替换left {with prefix,and right right}的简单函数:

define(DB_PREFIX,'myprefix_');

function prefixQuery($query)
{
   return str_replace('}','',str_replace('{',DB_PREFIX,$query));
}

答案 1 :(得分:1)

您可以为每个查询添加前缀,是。

您还可以使用str_replace函数解析每个查询,如下所示:

str_replace('mytable', 'prefix_mytable', $Query);

我会选择1号选项,减少负荷。

提示:如果您创建新的CMS,请提供数据库类并自动添加前缀。