2017-09-25 4 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は "string"を認識しません。あなたは "varchar"を使用する必要があります。日付フィールドには定義された長さは必要ありません。あなたはそれを残すことができます。作成、テーブル、クエリは次のように動作します: 'TABLEユーザーを作成( IDのVARCHAR(255)NOT NULL、 姓のVARCHAR(255)NOT NULLと、 姓のVARCHAR(255)NOT NULLと、 DOB日NULL NOT)' – 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. 日付の長さを割り当てる必要はありません。
関連する問題