使用PHP在MySQL表中如何更好的代码前缀?

时间:2012-10-02 13:43:28

标签: php mysql

我要写PHP脚本,它使用MySQL表的表前缀。我应该编写所有请求,例如

$db_query='select * from '.$tbl_prefix.'sometable;';

或者可以设置一些变量,将这个前缀添加到所有查询中? 例如,我正在执行请求

$db_query='select * from sometable;';

MAGIC 为表本身添加前缀,因此对于MySQL查询将看起来像

select * from pref_sometable;

2 个答案:

答案 0 :(得分:7)

你的第一个样本是要走的路;你需要每次都添加前缀。这可能会使它更容易变成一个函数(如果你需要更新任何东西,只需更新一个位置而不是多个位置会好得多):

function _table($table) {
    global $tbl_prefix;
    return $tbl_prefix . $table;
}

$db_query = 'SELECT * FROM ' . _table('sometable') . ';';

答案 1 :(得分:2)

没有MySQL命令可以执行此操作,您必须像在开始时一样在代码中实现它。所以:

$db_query='select * from '.$tbl_prefix.'sometable;';

很好。

如果您不想在每个查询上添加前缀,可以创建如下对象:

class database {
    function select($qry,$database) {
        $db_query="select " . $qry . " from myprefix_" . $database;
        // $res = query($db_query);
        return $res;
    }
}

$db_query=database->select("*","sometable");
// echo $db_query;
$db_query=database->select("playernick","sometable");
// echo $db_query;

这不是100%的PHP,它只是一个想法,所以你可以得到它。