2011-06-21 37 views
0
$dbhost = 'localhost'; 
    $dbuser = 'root'; 
    $dbpass = ''; 
    $conn = mysql_connect($dbhost, $dbuser, $dbpass); 
    if(! $conn) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 

    echo 'Connected successfully<br />'; 



$name_of_field="id_student"; 


function field_dynamic($field_num,$field_name){ 

    for($i=1;$i<=$field_num;$i++){ 

     if($i!=$field_num){ 

     $field[$i]="".$field_name."_".$i." VARCHAR(5) NOT NULL,".""; 

     }else{ 

     $field[$i]="".$field_name."_".$i." VARCHAR(5) NOT NULL"; 

     } 

    } 
    return $field; 
} 

$num=13; 

$sql_mathematic = "CREATE TABLE mathematic(". 

      field_dynamic($num,$name_of_field).")"; 

     mysql_select_db("adrian"); 
     $retval_mathematic = mysql_query($sql_mathematic, $conn); 

     if(! $retval_mathematic) 
      { 
       die('Could not create table: ' . mysql_error()); 
      } 

      echo "Table created successfully\n"; 

創建具有多個字段的表它不是工作..如何動態地在PHP

連接成功 無法創建表:您有一個錯誤的SQL語法;檢查對應於你的MySQL服務器版本的手冊,在第1行'''附近使用正確的語法。

請幫我................ !!

+0

嘗試通過打印$ field的內容進行調試,以查看現在執行的Sql語句有什麼問題,比讓我們看看。 – Dynamikus

+0

只是出於興趣:你想做什麼?它看起來像一個奇怪的數據庫設計給我.. – konsolenfreddy

+0

打印完整的查詢,你會發現'''附近有什麼問題。你從函數返回的是$ field數組 - 你如何將它傳遞給查詢?你是通過$ field數組循環還是內爆它或什麼? – Abhay

回答

2

這是一個壞主意。我的意思是,不要這樣做。嚴重的是,它會在你身上發抖,並將你置於後面

如果你一定要這個答案,但它是正確的答案。

(這將完成你在說什麼,但你不應該使用它。

for($i=1;$i<=$field_num;$i++){ 
    $field[$i]="".$field_name."_".$i." VARCHAR(5) NOT NULL"; 

} 
return implode(',',$field); 

)(我不能幫助它... ...的錯誤,如果我看到他們.. )

+0

謝謝@cwallenpoole .. – edrianhadinata