2017-09-25 73 views
0

我不确定我在这里做错了什么。该表不会在数据库'Users'中创建,并且根本没有错误消息。 PhpMyAdmin设置为不允许密码,只是为了清楚这一点。使用mysqli和php创建表格

这里是我的代码:

 

    $dbConn = new mysqli("localhost", "root", "", "Users"); 

    if ($dbConn->connect_error) 
    { 
     echo "alert('Database connection: unsuccessful! " . $dbConn->connect_error . " ');"; 
     die("Connection failed: " . $dbConn->connect_error); 
    } 

    $mySql = "CREATE TABLE Users(
     ID string(255) NOT NULL, 
     FirstName string(255) NOT NULL, 
     Surname string(255) NOT NULL, 
     DOB date(10) NOT NULL 
    )"; 
    if ($dbConn->query($mySql) === TRUE) 
    { 
     echo "alert('Table creation: successful!');"; 
    } 
    else 
    { 
     echo "alert('Table creation: unsuccessful! " . $dbConn->error . " ');"; 
    } 

    $dbConn->close(); 

+0

如果直接在MySQL中运行它(例如通过WorkBench),查询是否可以正常工作? – ADyson

+2

Mysql不知道“字符串”。你将不得不使用“varchar”。日期字段不需要定义的长度。你可以离开它。在创建表的查询会像这样:'CREATE TABLE用户( ID为varchar(255)NOT NULL, 名字为varchar(255)NOT NULL, 姓VARCHAR(255)NOT NULL, DOB日期NOT NULL )' – natheriel

+0

同意@natheriel –

回答

1

您的查询应该是这样的。

$mySql = CREATE TABLE Users(
     ID VARCHAR(255) NOT NULL, 
     FirstName VARCHAR(255) NOT NULL, 
     Surname VARCHAR(255) NOT NULL, 
     DOB date NOT NULL 
    )"; 
  1. 的MySQL无法理解的字符串。传递varchar而不是字符串。
  2. 你不需要指定日期的长度。