2

PHP からデータベースにテーブルを作成しようとしています。とにかく、ソーシャルネットワーキングサイトを作ろうとしているのですが、コードを書いて動作していますが、データベースに新しいテーブルが作成されません。コードの何が問題なのかわかりません。助けていただければ幸いです。

<?php

    $host = "host";   
    $user = "user";
    $pswd = "password";
    $dbnm = "db";

    $conn = @mysqli_connect($host, $user, $pswd, $dbnm);
    if (!$conn)
        die ("<p>Couldn't connect to the server!<p>");

    $selectData = @mysqli_select_db ($conn, $dbnm);
    if(!$selectData)
    {
        die ("Database Not Selected");
    }

        $sql = "CREATE TABLE IF NOT EXIST 'friends' 
            (
            'friend_id' INT NOT NULL auto_increment, 
            'friend_email' VAR CHAR(20) NOT NULL,
            'password' VAR CHAR(20) NOT NULL,
            'profile_name' VAR CHAR(30) NOT NULL,
            'date_started' DATE NOT NULL,
            'num_of_friends' INT unsigned,
            PRIMARY KEY ('friend_id')
            )";

    $query_result = @mysqli_query($conn, $sql);


    mysqli_close($conn);

?>
4

3 に答える 3

0

まず、スクリプトをデバッグするときは、関数の前にある「@」を削除します。それらは警告を抑制し、そうでなければすぐにエラーに導きます。

create table ステートメントに多くの構文エラーがあります。修正したものを試してください -

   CREATE TABLE IF NOT EXISTS `friends` 
        (
        `friend_id` INT NOT NULL auto_increment, 
        `friend_email` VARCHAR(20) NOT NULL,
         `password` VARCHAR(20) NOT NULL,
        `profile_name` VARCHAR(30) NOT NULL,
        `date_started` DATE NOT NULL,
        `num_of_friends` INT unsigned,
        PRIMARY KEY (`friend_id`)
        )
于 2012-10-27T14:21:56.367 に答える
0

スクリプトの実行時にもエラーをチェックする必要があるため、抑制をオフにする (@ 記号を削除する) か、実行後にエラーをチェックします。

実際には複数のエラーがありました:

  1. あなたはEXISTむしろ持っていたEXISTS
  2. ` マークではなく単一引用符 ( ' ) を使用しました
  3. 正しい(1 つの単語) VAR CHARではなく、2 つの単語として持っていたVARCHAR

      CREATE TABLE IF NOT EXISTS  `friends`  
          (  
          `friend_id` INT NOT NULL auto_increment,   
          `friend_email` VARCHAR(20) NOT NULL,  
          `password` VARCHAR(20) NOT NULL,  
          `profile_name` VARCHAR(30) NOT NULL,  
          `date_started` DATE NOT NULL,  
          `num_of_friends` INT unsigned,  
          PRIMARY KEY (`friend_id`)  
          )
    
于 2012-10-27T14:26:28.990 に答える
0

CREATE TABLE に誤りがあります。あなたは書いたはずですCREATE TABLE tablename IF NOT EXISTS(EXISTSはSで終わるべきです)。また、エラーを抑制せず、次のようなすべてのクエリの後にエラーを出力することもお勧めします。

if(!mysqli_query($conn, $sql) { die("The query ".$sql." failed: ".mysqli_eror }
于 2012-10-27T14:29:23.707 に答える