使用php创建数据库表时出错

时间:2013-03-26 18:05:28

标签: php mysql

我想使用php(mysql_querry)

在数据库中创建一个表

表具有'n'个属性。 n,n-2个属性名称在数组中可用。

我无法解释我在哪里获得阵列但它看起来像这样 - http://i.stack.imgur.com/tH98f.png

以下是生成要在mysql_querry中执行的String的代码。

    $str="CREATE TABLE $register_name(id int NOT NULL AUTO_INCREMENT, date DATE, ";
    $j=0;
    while($j<$i)
    {
        $str=$str.$roll_no[$j]." int(100), ";
        $j++;

    }
    $str=$str."PRIMARY KEY(id))";


require('blogic.php');
$obj = new blogic();
$createtable=$obj->create($str);

当我回应$ str时,我明白了:

CREATE TABLE $register_name(id int NOT NULL AUTO_INCREMENT, date DATE, 913310128 int(100), 0913310129 int(100), PRIMARY KEY(id))

但是,它会给出这样的错误

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   '913310128 int(100),0913310129 int(100),PRIMARY KEY(id))'附近   第1行

我不明白这个问题。当我不使用roll_no数组,它工作正常.. 请告诉我这是什么问题。

1 个答案:

答案 0 :(得分:1)

来自docs

“标识符可以以数字开头,但除非引用可能不仅仅由数字组成。”

所以,你可以引用这个名字:

$str=$str."`".$roll_no[$j]."` int(100), ";

或者在前面添加一个字母:

$str=$str."c".$roll_no[$j]." int(100), ";