mysqli无法创建表[重复]

问题描述 投票:0回答:3

我的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";
  }

我感谢你的每一个答案,谢谢你的帮助!

php mysql mysqli
3个回答
5
投票

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

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

1
投票

因为MySQL查询中有错误

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

表定义不正确;只能有一个自动列,必须将其定义为键

修复:

CREATE TABLE IF NOT EXISTS db (
      ID INT NOT NULL AUTO_INCREMENT,
      NAME VARCHAR(20) NULL,
      key idx_ID(ID)
     );

PRIMARY KEY不是强制性的,普通密钥也可以工作。


1
投票

你能试试吗?

 $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";
  }
© www.soinside.com 2019 - 2024. All rights reserved.