php - 如何最好地修改带有表前缀的sql查询

标签 php mysql prefix

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

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

修改带前缀表名的sql的推荐方法是什么?

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

谢谢

最佳答案

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

不要编写标准 SQL 查询,而是使用例如以下内容来包含表名称:大括号如:

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

并定义简单函数,用前缀替换 left {,并删除 right }:

define(DB_PREFIX,'myprefix_');

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

关于php - 如何最好地修改带有表前缀的sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11213729/

相关文章:

php - Zend框架加入

javascript - 更新textarea上的mysql数据点击关闭

MySQL - 查询以查找连续范围的未使用值

mysql - 无法使用 Node.js 连接 Heroku 上的 ClearDB MySQL

java - 在变量名称前加上前缀以指示它们各自的范围或来源?

php - 我如何使用 anchor 标记 href 打开我的代码的详细信息数据?

php - Json 使用 WHERE column = $variable 读取 mysql 列

php - 如何在mysql中的自动增量字段前面添加文本(如: TTT00001)?

string - 找到字符串 S 的最短前缀 T,使得 S 是 T^n 的前缀

Python:为列表中的所有元素添加相同的前缀