Mysqli 奇怪的错误 1064,当没有语法错误时



任何人都可以帮助我,我做错了什么。php代码中没有语法错误,但输出是 - 连接成功未创建表客户。错误: 1064未创建表统计信息。错误 : 1005。我正在使用 XAMPP,PHP 7

      <?php

      $conn = mysqli_connect("localhost","root","","test");
      if(mysqli_connect_errno()){
          echo "Connect failed%n".mysqli_connect_errno();
          exit();
      }
      else {
      echo "connection successful";
      }
      $sql1 = "CREATE TABLE CUSTOMERS (
      P_Id int(10) NOT NULL AUTO_INCREMENT,
      Firstname(100) varchar NOT NULL,
      Lastname(100) varchar NOT NULL,
      Address varchar(500) NOT NULL,
      City varchar(100) NOT NULL,
      PRIMARY KEY(P_Id)
      )";
      if(mysqli_query($conn,$sql1)==1){
          echo "Table customers created successfully";
      }
      else
      {
          echo "<br/>"."Table customers NOT created. Error: ".mysqli_errno($conn);
      }
      $sql2 = 'CREATE TABLE STATS (
      O_Id int(10) NOT NULL AUTO_INCREMENT,
      Offers varchar(1000) NOT NULL,
      Resorts varchar(1000) NOT NULL,
      ArrivalDate date NOT NULL,
      P_Id int(10) NOT NULL,
      PRIMARY KEY(O_Id),
      FOREIGN KEY(P_Id) REFERENCES CUSTOMERS(P_Id)
      )';

      if(mysqli_query($conn,$sql2)==1){
          echo "Table stats created successfully";
      }
      else
      {
          echo "<br/>"."Table stats NOT created. Error : ".mysqli_errno($conn);
      }
      ?>
您需要

VARCHAR 关键字后指定VARCHAR字符限制。因此,例如,在对表 CUSTOMERS 的查询中,Firstname 子句将如下所示:

Firstname VARCHAR(100) NOT NULL

错误在于你如何声明你的varchar。

Firstname(100) varchar NOT NULL,

必须是 :

Firstname varchar(100) NOT NULL,

因此,更改名字和姓氏语法,一切都会正常工作。希望这有帮助。

我认为你的问题是列声明:

您应该使用:<name> <type>(length) NOT NULL

最新更新