2012-10-27 98 views
2

我想從php創建我的數據庫表。我有點試圖做一個社交網站,無論如何,我寫了代碼,並且正在工作,但是新表不會在數據庫中創建,我不知道代碼有什麼問題。非常感謝幫助,謝謝!使用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); 

?> 
+1

什麼是您看到的錯誤消息? – krishnang

+3

抑制錯誤被認爲是不好的做法('@'操作符)。請不要。 –

+1

從一個mysql客戶端運行它。你'CREATE TABLE'的語法是錯誤的。 – air4x

回答

0

你需要檢查錯誤運行腳本時也,故可以關閉抑制(去掉@符號),或者運行後,檢查錯誤。

實際上有多個錯誤:

  1. 你有EXIST,而不是EXISTS
  2. 您使用單引號('),而不是'標誌
  3. 你有VAR CHAR爲兩個詞,而比正確的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`) 
        ) 
    
+0

壓制他們,你將不會看到任何錯誤,非常感謝你,我對'和'和語法之間的區別產生了盲目性,謝謝你sir –

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`) 
     ) 
0

您在CREATE TABLE中有錯誤。你應該寫下CREATE TABLE tablename IF NOT EXISTS(EXISTS應該以S結尾)。我也建議你不要在每次查詢之後抑制錯誤並打印錯誤,如下所示:

if(!mysqli_query($conn, $sql) { die("The query ".$sql." failed: ".mysqli_eror }