2017-12-19 19 views
0

私はmysqlに問題があります。データベースに接続しますが、テーブルを作成しません。ここに私のコードの例です:mysqliはテーブルを作成できません

$db = new mysqli('localhost', 'user.name', 'user.pass', 'db'); 

    if ($db === FALSE) { 
    echo "ERRROR"; 
    } 

    $sql = "CREATE TABLE IF NOT EXISTS db (
     ID INT NOT NULL AUTO_INCREMENT, 
     NAME VARCHAR(20) NULL 
)"; 

    $db->query($sql); 

    if (mysqli_query($db, $sql)) { 
    echo "TABLE CREATED SUCCESSFULLY"; 
    } else { 
    echo "TABLE CREATED UNSUCCESSFULLY"; 
    } 

私は、すべての答えを感謝助けてくれてありがとう!

+0

これをスクリプトに追加できますか? echo( "TABLE CREATED UNSUCCESSFULLY:"。mysqli_error($ sql));というエラーメッセージが表示されます。 –

答えて

4

MySQLは、自動インクリメント列がキーとして定義されている場合のみ許可します。カラムはおそらく主キーとしてそれをしたい意味IDを、ラベル付けされていることを考えると、これを試してみてください。

$sql = "CREATE TABLE IF NOT EXISTS db (
     ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
     NAME VARCHAR(20) NULL 
)"; 
+0

ええそれは動作します!どうもありがとうございます! – Rthlss

+1

あなたの問題を解決したら、この回答に合格とマークしてください。この回答の横にある緑色のチェックマークを押すだけです。 –

+1

私は2分待たなければなりません:D – Rthlss

1

をMySQLのクエリ

CREATE TABLE IF NOT EXISTS db (
     ID INT NOT NULL AUTO_INCREMENT, 
     NAME VARCHAR(20) NULL; 

不正なテーブル定義にエラーがあるので、そこに一つだけのオート列にすることができ、それがキー

修正のように定義する必要があります。

CREATE TABLE IF NOT EXISTS db (
     ID INT NOT NULL AUTO_INCREMENT, 
     NAME VARCHAR(20) NULL, 
     key idx_ID(ID) 
    ); 

PRIMARY KEYは必須ではない、通常のキーは、あまりにも動作することができます。

0

お試しください。

$db = new mysqli('localhost', 'user.name', 'user.pass', 'db'); 

    if ($db === FALSE) { 
    echo "ERRROR"; 
    } 

    $sql = "CREATE TABLE IF NOT EXISTS db (
     ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
     NAME VARCHAR(20) NULL 
)"; 

    $db->query($sql); 

    if (mysqli_query($db, $sql)) { 
    echo "TABLE CREATED SUCCESSFULLY"; 
    } else { 
    echo "TABLE CREATED UNSUCCESSFULLY"; 
    } 
関連する問題