【问题标题】:Table not creating PHP mysql database [closed]表未创建 PHP mysql 数据库 [关闭]
【发布时间】:2012-10-18 15:33:44
【问题描述】:

我正在尝试使用 PHP 和 MySQL 创建一个表。第一个表不会在数据库上创建,但第二个会。我认为这是我的参数/约束。这是我的代码:

if ($conn==true){
     $tablefriends = "CREATE TABLE IF NOT EXISTS friends (
        friend_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        friend_email VARCHAR(64) NOT NULL PRIMARY KEY ,
        password VARCHAR(16) NOT NULL ,
        profile_name VARCHAR(32) NOT NULL ,
        date_started DATE NOT NULL ,
        num_of_friends INT UNSIGNED ZEROFILL NULL default '0'
        );";

    $tablemyfriends = "CREATE TABLE IF NOT EXISTS myfirends ( 
        friend_id1 INT NOT NULL , 
        friend_id2 INT NOT NULL 
        );";

    $resulttf = @mysqli_query($conn, $tablefriends);
    if($resulttf==false){
        echo "<p>Failed to create friends table</p>";
        }
    $resulttmf = @mysqli_query($conn, $tablemyfriends);
    if($resulttmf==false){
        echo "<p>Failed to create myfriends table</p>"; 
        }else{

    echo"<p>Tables successfully created</p>";
        }
    mysqli_close($conn);
}

else {
    echo "<p>Failed to connect</p>";
    }

不知道为什么导师说要分两次入小学

【问题讨论】:

  • 遵循stackoverflow.com/questions/13100937/… 中提供给您的有关抑制错误的建议。
  • 第一个表中使用了多个主键,通过mysql gui工具或phpmyadmin运行它会帮助您自己调试。
  • 一旦主键被修复,下一个问题将是关于性能的,因为没有为我的朋友定义索引

标签: php mysql database create-table


【解决方案1】:

2 Primary keysfriend_idfriend_email

始终检查您的查询,然后再将其放入 PHP

【讨论】:

  • 真的吗?我的作业表要求他们都有主键 >friend_id - 唯一的数字标识符,例如 1023。将此字段的属性设置为“整数”、“非空”、“自动增量”和“主键”。 ·friend_email – 用于登录系统的唯一电子邮件标识符,例如 user@gmail.com。将此字段的属性设置为“varchar”、“size=50”、“not null”和“主键”。
  • 您不能有 2 个主键。你可以有一个composite primary key 2 列。或者,unique-key 用于第二个字段。
【解决方案2】:

在您的第一个查询 ($tablefriends) 中,您定义了两个主键。希望下面的代码对你有用。

 if ($conn==true){
         $tablefriends = "CREATE TABLE IF NOT EXISTS friends (
            friend_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
            friend_email VARCHAR(64) NOT NULL ,
            password VARCHAR(16) NOT NULL ,
            profile_name VARCHAR(32) NOT NULL ,
            date_started DATE NOT NULL ,
            num_of_friends INT (64) UNSIGNED ZEROFILL NULL default '0'
            );";

        $tablemyfriends = "CREATE TABLE IF NOT EXISTS myfirends ( 
            friend_id1 INT NOT NULL , 
            friend_id2 INT NOT NULL 
            );";

        $resulttf = @mysqli_query($conn, $tablefriends);
        if($resulttf==false){
            echo "<p>Failed to create friends table</p>";
            }
        $resulttmf = @mysqli_query($conn, $tablemyfriends);
        if($resulttmf==false){
            echo "<p>Failed to create myfriends table</p>"; 
            }else{

        echo"<p>Tables successfully created</p>";
            }
        mysqli_close($conn);
    }

    else {
        echo "<p>Failed to connect</p>";
        }

【讨论】:

    【解决方案3】:

    授予运行查询的用户的 GRANTS 是什么?也许用户只能创建第二个表。

    查看 MySQL 日志文件,看看是否有任何错误消息可以帮助您。

    【讨论】:

      【解决方案4】:
      if ($conn==true){
           $tablefriends = "CREATE TABLE IF NOT EXISTS friends (
              friend_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
              friend_email VARCHAR(64) NOT NULL,
              password VARCHAR(16) NOT NULL ,
              profile_name VARCHAR(32) NOT NULL ,
              date_started DATE NOT NULL ,
              num_of_friends INT UNSIGNED ZEROFILL NULL default '0'
              );";
      
          $tablemyfriends = "CREATE TABLE IF NOT EXISTS myfirends ( 
              friend_id1 INT NOT NULL , 
              friend_id2 INT NOT NULL 
              );";
      
          $resulttf = @mysqli_query($conn, $tablefriends);
          if($resulttf==false){
              echo "<p>Failed to create friends table</p>";
              }
          $resulttmf = @mysqli_query($conn, $tablemyfriends);
          if($resulttmf==false){
              echo "<p>Failed to create myfriends table</p>"; 
              }else{
      
          echo"<p>Tables successfully created</p>";
              }
          mysqli_close($conn);
      }
      
      else {
          echo "<p>Failed to connect</p>";
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-24
        • 1970-01-01
        • 2014-12-21
        • 2014-09-03
        • 2012-04-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-21
        相关资源
        最近更新 更多