【问题标题】:CANNOT CREATE TABLE MySQLi无法创建表 MySQLi
【发布时间】:2017-10-31 19:12:08
【问题描述】:

我尝试使用CREATE TABLE IF NOT EXISTS 创建一个表,但出现了问题。我无法解决这个问题。谁能帮帮我?

<?php
$server     = "localhost";
$user       = "root";
$password   = "";
$dbname     = "bombus";
$connection = @new mysqli( $server, $user, $password, $dbname ) or die( "ERROR : " . mysqli_error() );
$tablename  = "users";
$newTable   = $connection->query("CREATE TABLE IF NOT EXISTS $tablename(
  ID int NOT NULL AUTO_INCREMENT,
  PRIMARY KEY(ID),
  userName VARCHAR(MAX) NOT NULL UNIQUE,
  password CHAR(32) NOT NULL,
  isAdmin TINYINT(1) NOT NULL,
  companyID int NOT NULL,
  branchID int NOT NULL
)");
mysqli_close($connection);
?>

感谢您的帮助。

【问题讨论】:

  • 您在运行此代码时是否遇到任何错误?您确定该表不存在吗?您在定义 $connection 的行中有一个 @,请将其删除。
  • 这个answer,可能对你有帮助......我看到你没有通过PHP检查表是否存在。根据您的问题陈述,我帮不上什么忙。
  • 您需要将密码更改为其他名称,密码是内置名称,请尝试 user_pass 并再次运行脚本
  • 此外,当我尝试运行您的查询时,我在 userName VARCHAR(MAX) 上遇到错误。将其更改为 VARCHAR(255) 并且有效。
  • 连接到数据库我测试过删除@没有任何区别

标签: php mysql mysqli php-7


【解决方案1】:

您的脚本中有一些问题。更改您的创建表查询,如下所示:

$newTable   = $connection->query("CREATE TABLE IF NOT EXISTS $tablename(
  ID int NOT NULL AUTO_INCREMENT,
  PRIMARY KEY(ID),
  userName VARCHAR(50) NOT NULL UNIQUE,
  user_password CHAR(32) NOT NULL,
  isAdmin TINYINT(1) NOT NULL,
  companyID int NOT NULL,
  branchID int NOT NULL)");

【讨论】:

  • 干得好!确切地说,该问题的 cmets 中所说的内容。
  • 所以@AliDayan请接受B.Desai关于他的回答:-)
  • 我会去接受,但有警告说你可以在 3 分钟内接受
猜你喜欢
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
  • 2018-05-12
  • 1970-01-01
  • 2013-11-25
相关资源
最近更新 更多