1

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

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

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

$db_query='select * from sometable;';

并且MAGIC为表本身添加前缀,因此对于 MySQL 查询将如下所示

select * from pref_sometable;
4

2 回答 2

7

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

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

$db_query = 'SELECT * FROM ' . _table('sometable') . ';';
于 2012-10-02T13:47:17.157 回答
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,它只是一个想法,所以你可以得到它。

于 2012-10-02T13:56:34.040 回答