我想用php变量+名称创建表

时间:2017-03-26 14:41:06

标签: php mysql mysqli phpmyadmin

我想用php变量+名称创建表 喜欢。

这是我的代码

   if($conn->query($sql1)===TRUE){ 
 $_SESSION['username'] = $x;
 $sql = "CREATE TABLE $x
 (
ID int NOT NULL AUTO_INCREMENT,
image blob,
date datetime,
status longtext,
PRIMARY KEY (ID)
)";

 $sql2 = "CREATE TABLE ".$x."_frnd
 (
ID int NOT NULL AUTO_INCREMENT,
myfrndname varchar(255),
myfrndusername varchar(255),
PRIMARY KEY (ID)
 )";
  $result= mysqli_query($conn,$sql,$sql2);

  if ($conn->query($result) === TRUE) {

    }

这里($ x)是一个变量而frnd是手工名称 - 我想要这样的结果表。 [adminfrnd]。 请建议我。

3 个答案:

答案 0 :(得分:0)

尝试这样的事情:

CREATE TABLE IF NOT EXISTS `{$x}frnd` (
  `id` mediumint(6) unsigned zerofill NOT NULL auto_increment,
  `myfrndname` varchar(255) NOT NULL,
  `myfrndlastname` varchar(255) NOT NULL,
  `myfrndusername` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin

顺便说一下

为什么要为每个管理员创建自己的表?

答案 1 :(得分:0)

你需要做的是附加这样的文字:

$sql = "CREATE TABLE " . $x . "frnd
( ID int NOT NULL AUTO_INCREMENT,
  myfrndname varchar(255), 
 myfrndlastname varchar(255), 
 myfrndusername varchar(255), 
 PRIMARY KEY (ID) )";

答案 2 :(得分:0)

在您的示例中,$x应为字符串。

您的代码如下:

$x="admin";
    $sql = "CREATE TABLE ".$x."_frnd
    ( ID int NOT NULL AUTO_INCREMENT,
      myfrndname varchar(255), 
     myfrndlastname varchar(255), 
     myfrndusername varchar(255), 
     PRIMARY KEY (ID) )";
    $result= mysqli_query($conn,$sql);  
    if ($conn->query($result) === TRUE) {
    }

注意:在表名中使用.(点)使用_(下划线)而不是好习惯