如何在PHP中动态创建具有多个字段的表

时间:2011-06-21 17:48:46

标签: php mysql sql

$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";

它不起作用:

  

成功连接
  无法创建表:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的')'附近使用正确的语法

请帮帮我。

1 个答案:

答案 0 :(得分:2)

这是一个不好的想法。我的意思是,真的,不要那样做。严重,它会在你身上悄然发起并在后面停留

如果必须,请对此答案进行投票,但这是正确的答案。

(这会完成你所说的,但你不应该使用它。

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

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

)(我无法帮助它...错误...如果我看到它们......)