Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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_Php 7 - Fatal编程技术网

Php 无法创建表MySQLi

Php 无法创建表MySQLi,php,mysql,mysqli,php-7,Php,Mysql,Mysqli,Php 7,我尝试使用创建一个表,如果不存在则创建一个表,但出现了一些错误。我解决不了这个问题。有人能帮我吗 <?php $server = "localhost"; $user = "root"; $password = ""; $dbname = "bombus"; $connection = @new mysqli( $server, $user, $password, $dbname ) or die( "ERROR : " . mysqli_error() )

我尝试使用
创建一个表,如果不存在
则创建一个表,但出现了一些错误。我解决不了这个问题。有人能帮我吗

<?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);
?>


感谢您的帮助。

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

$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)");

运行此代码时是否出现任何错误?您确定该表不存在吗?您在定义$connection的行中有一个@,请将其删除。这可能会帮助您。。。我看到您没有通过PHP检查数据库中是否存在该表。根据您的问题陈述,我帮不了多少忙。您需要将密码更改为其他名称,密码是一个内置名称,请尝试“用户传递”并再次运行脚本。另外,当我尝试运行您的查询时,用户名VARCHAR(MAX)出现错误。将它改为VARCHAR(255)并成功运行。这连接到了我测试过的数据库,删除@并没有任何区别!这正是问题评论中所说的。因此@AliDayan请接受B.Desai关于他的回答:-)我会去接受,但有警告说你可以在3分钟内接受