0

PHP と MySQL を使用してテーブルを作成しようとしています。最初のテーブルはデータベースに作成されませんが、2 番目のテーブルは作成されます。私のパラメータ/制約だと思います。これが私のコードです:

if ($conn==true){
     $tablefriends = "CREATE TABLE IF NOT EXISTS friends (
        friend_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        friend_email VARCHAR(64) NOT NULL PRIMARY KEY ,
        password VARCHAR(16) NOT NULL ,
        profile_name VARCHAR(32) NOT NULL ,
        date_started DATE NOT NULL ,
        num_of_friends INT UNSIGNED ZEROFILL NULL default '0'
        );";

    $tablemyfriends = "CREATE TABLE IF NOT EXISTS myfirends ( 
        friend_id1 INT NOT NULL , 
        friend_id2 INT NOT NULL 
        );";

    $resulttf = @mysqli_query($conn, $tablefriends);
    if($resulttf==false){
        echo "<p>Failed to create friends table</p>";
        }
    $resulttmf = @mysqli_query($conn, $tablemyfriends);
    if($resulttmf==false){
        echo "<p>Failed to create myfriends table</p>"; 
        }else{

    echo"<p>Tables successfully created</p>";
        }
    mysqli_close($conn);
}

else {
    echo "<p>Failed to connect</p>";
    }

家庭教師がプライマリを 2 回入れるように言った理由がわかりません

4

4 に答える 4

5

2主キーfriend_idfriend_email

PHPに入れる前に、必ずクエリをチェックしてください。

于 2012-10-29T10:19:34.243 に答える
1

最初の query( $tablefriends) では、2 つの主キーを定義しました。以下のコードがうまくいくことを願っています。

 if ($conn==true){
         $tablefriends = "CREATE TABLE IF NOT EXISTS friends (
            friend_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
            friend_email VARCHAR(64) NOT NULL ,
            password VARCHAR(16) NOT NULL ,
            profile_name VARCHAR(32) NOT NULL ,
            date_started DATE NOT NULL ,
            num_of_friends INT (64) UNSIGNED ZEROFILL NULL default '0'
            );";

        $tablemyfriends = "CREATE TABLE IF NOT EXISTS myfirends ( 
            friend_id1 INT NOT NULL , 
            friend_id2 INT NOT NULL 
            );";

        $resulttf = @mysqli_query($conn, $tablefriends);
        if($resulttf==false){
            echo "<p>Failed to create friends table</p>";
            }
        $resulttmf = @mysqli_query($conn, $tablemyfriends);
        if($resulttmf==false){
            echo "<p>Failed to create myfriends table</p>"; 
            }else{

        echo"<p>Tables successfully created</p>";
            }
        mysqli_close($conn);
    }

    else {
        echo "<p>Failed to connect</p>";
        }
于 2012-10-29T10:25:24.037 に答える
0

クエリを実行しているユーザーに与えられる GRANTS は何ですか? おそらく、ユーザーは 2 番目のテーブルしか作成できません。

MySQL ログ ファイルを調べて、役立つエラー メッセージがあるかどうかを確認してください。

于 2012-10-29T10:23:21.400 に答える
0
if ($conn==true){
     $tablefriends = "CREATE TABLE IF NOT EXISTS friends (
        friend_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
        friend_email VARCHAR(64) NOT NULL,
        password VARCHAR(16) NOT NULL ,
        profile_name VARCHAR(32) NOT NULL ,
        date_started DATE NOT NULL ,
        num_of_friends INT UNSIGNED ZEROFILL NULL default '0'
        );";

    $tablemyfriends = "CREATE TABLE IF NOT EXISTS myfirends ( 
        friend_id1 INT NOT NULL , 
        friend_id2 INT NOT NULL 
        );";

    $resulttf = @mysqli_query($conn, $tablefriends);
    if($resulttf==false){
        echo "<p>Failed to create friends table</p>";
        }
    $resulttmf = @mysqli_query($conn, $tablemyfriends);
    if($resulttmf==false){
        echo "<p>Failed to create myfriends table</p>"; 
        }else{

    echo"<p>Tables successfully created</p>";
        }
    mysqli_close($conn);
}

else {
    echo "<p>Failed to connect</p>";
    }
于 2012-10-29T10:24:43.613 に答える