Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqli无法创建表_Php_Mysql_Mysqli - Fatal编程技术网

Php mysqli无法创建表

Php mysqli无法创建表,php,mysql,mysqli,Php,Mysql,Mysqli,我的mysql有问题。它连接到数据库,但不构成表。下面是我的代码示例: $db = new mysqli('localhost', 'user.name', 'user.pass', 'db'); if ($db === FALSE) { echo "ERRROR"; } $sql = "CREATE TABLE IF NOT EXISTS db ( ID INT NOT NULL AUTO_INCREMENT, NAME VARCHA

我的mysql有问题。它连接到数据库,但不构成表。下面是我的代码示例:

  $db = new mysqli('localhost', 'user.name', 'user.pass', 'db');

  if ($db === FALSE) {
     echo "ERRROR";
  }   

  $sql = "CREATE TABLE IF NOT EXISTS db (
      ID INT NOT NULL AUTO_INCREMENT,
      NAME VARCHAR(20) NULL
  )";

  $db->query($sql);

  if (mysqli_query($db, $sql)) {
     echo "TABLE CREATED SUCCESSFULLY";
  } else {
    echo "TABLE CREATED UNSUCCESSFULLY";
  }

我很感激你的回答,谢谢你的帮助

MySQL只允许将列定义为键时自动递增。如果列标记为ID,这意味着您可能希望将其作为主键,请尝试以下操作:

  $sql = "CREATE TABLE IF NOT EXISTS db (
      ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
      NAME VARCHAR(20) NULL
  )";

因为MySQL查询中有错误

  CREATE TABLE IF NOT EXISTS db (
      ID INT NOT NULL AUTO_INCREMENT,
      NAME VARCHAR(20) NULL;
表定义不正确;只能有一个自动列,必须将其定义为键

修正:


主键不是强制性的,普通键也可以使用。

您能试试这个吗

 $db = new mysqli('localhost', 'user.name', 'user.pass', 'db');

  if ($db === FALSE) {
     echo "ERRROR";
  }   

  $sql = "CREATE TABLE IF NOT EXISTS db (
      ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
      NAME VARCHAR(20) NULL
  )";

  $db->query($sql);

  if (mysqli_query($db, $sql)) {
     echo "TABLE CREATED SUCCESSFULLY";
  } else {
    echo "TABLE CREATED UNSUCCESSFULLY";
  }

你能试着把这个添加到脚本中吗?它应该会给我们一条错误消息:echo(“表创建失败:”.mysqli_error($sql));是的,它很管用!!!非常感谢你!确保将此答案标记为已接受,因为它解决了您的问题。只需点击这个答案旁边的绿色复选标记。当然,我必须等待2分钟:D
 $db = new mysqli('localhost', 'user.name', 'user.pass', 'db');

  if ($db === FALSE) {
     echo "ERRROR";
  }   

  $sql = "CREATE TABLE IF NOT EXISTS db (
      ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
      NAME VARCHAR(20) NULL
  )";

  $db->query($sql);

  if (mysqli_query($db, $sql)) {
     echo "TABLE CREATED SUCCESSFULLY";
  } else {
    echo "TABLE CREATED UNSUCCESSFULLY";
  }