创建数据库可以使用变量,但是我想给数据库内的表自定义一个前缀。
比如我原先的表是member,那么我希望安装的时候传递一个值过去,然后接受在member的前面加上这个变量值实现表名自定义前缀。
但是安装的时候好像变量名直接成表名了,想知道这种是怎么实现的,估计大家安装dedecms的时候也有提示数据库位置,名称,数据库名,表名之类的选项吧。差不多就想知道怎么在创建表的时候使用变量的值做表名

解决方案 »

  1.   

    sql语句里 ,预留前缀的位置,也可以预设一个值比如csdn_member……建表的时候,将语句中csdn_相应的替换即可
      

  2.   

    表名可以用PHP的变量拼起来的,
    比如:
    $newtable_name = "自定义前缀".$table_name;
    $sql = mysql_query("create $newtable_name ...");
      

  3.   

    你的连接数据库是不是有一个专门的文件,例如config.php
    那么你就可以在里面声明一个变量$tablepre = "表的前缀"
    你每次连接数据库需要用到这个文件吧,那么这个变量就可以直接使用
    $sql = "select * from $tablepre.$table_name";
      

  4.   

    我不知道你实验过没有,但是这样创建的是一个叫$newtable_name的表
    不行你试试,我也知道拼,但是使用mysql_query("create TABLE $newtable_name"){……}
    会是直接的变量名而不是变量的值,这就是我遇到的问题
      

  5.   

    请问可以写个简单的例子不,你说的双引号我加了没用,也许是我没有加对地方。$tablename = "size";
    $sql = "CREATE TABLE `size` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `title` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_general_ci NULL, `content` VARCHAR(400) CHARACTER SET utf8 COLLATE utf8_general_ci NULL, `classid` INT(4) NULL, `flog` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL, `display` INT(2) NULL) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;";
    if(mysql_query($sql)) echo "创建表成功;";
    echo "<br>";
      

  6.   

    本帖最后由 xuzuning 于 2010-08-13 12:12:30 编辑