用户正在创建表格。用户输入将在表中的字段数,并根据输入的数字生成表单。然后,他们输入列的名称和类型。然后我根据他们输入的内容创建表格。
我可以正确填充数组,但我的错误消息显示我有语法错误。我确定我做错了什么,但我试图在查询中添加一个while循环,因为没有要输入的固定数量的变量。这就是我所拥有的。如果有更好的方法,我会全力以赴。
$sql = 'CREATE TABLE $table (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id), ';
while($numDone < $totalFields){
$sql .= $colName[$x] . ' ' . $types[$x] . ', ';
$x++;
$numDone++;
}
$sql .= ')';
$query1 = mysql_query($sql) or die(mysql_error());
**解决 我将单引号更改为双引号,对$ table使用了点运算符,并为逗号添加了if语句。它现在正在运作。
答案 0 :(得分:2)
首先,这个
'CREATE TABLE $table'
不会填写$ table,但会是LITERALLY
CREATE TABLE $table
如果要显示变量,请使用"
。如果你只是回应你的$sql
,你会发现它。可能有更多,但可能很容易被发现的调试提到......
答案 1 :(得分:0)
将单引号(')更改为查询的双引号(“)。
或使用点运算符(。)附加php变量。
$tableName = "mytable";
echo $query1 = "SELECT * FROM $tableName";
echo $query2 = 'SELECT * FROM $tableName';
//输出
SELECT * FROM mytable
SELECT * FROM $ tableName
答案 2 :(得分:0)
你明显有一个额外的尾随逗号:
CREATE TABLE $table (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
col1 INT,
col2 INT,
-- ^ here
)
答案 3 :(得分:0)
您输入的VARCHAR字段可能没有像fieldname VARCHAR
这样的大小会返回错误,而应该像fieldname VARCHAR(100)
一样?尾随逗号也可能是Quassnoi评论的错误原因。
答案 4 :(得分:0)
如果你试图摆脱尾随斜线,你也可以使用计数器来做到这一点。
$fieldsCount = count($listingFields);
foreach($listingFields as $key => $listing)
{ // create the insert statement (do not add comma at the end)
$query .=" ".$listing[0];
if ( $key+1 != $fieldsCount )
{
$query .=',';
}
}