0

我想使用 php (mysql_query) 在数据库中创建一个表

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

我无法解释我从哪里得到数组,但它看起来像这样 - http://i.stack.imgur.com/tH98f.png

这是生成字符串以在 mysql_query 中执行的代码。

    $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 服务器版本相对应的手册,以在第 1 行的“913310128 int(100)、0913310129 int(100)、PRIMARY KEY(id))”附近使用正确的语法

我不明白这个问题。当我不使用 roll_no 数组时,它工作正常。请让我知道这是什么问题。

4

1 回答 1

1

文档

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

因此,您可以引用名称:

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

或者,在它前面加上一个字母:

$str=$str."c".$roll_no[$j]." int(100), ";
于 2013-03-26T18:14:46.087 回答