解析错误:语法错误,在第13行出现意外'='
我希望$colours
作为列表红色,黄色,蓝色,绿色和N/A在开始时被放入数据库,这些后来是呼吁为一个下拉框,其中用户选择一个解析错误:语法错误,在第13行出现意外'='
include'dbc.php';
$colours = "N/A";
if (isset($_POST['cb']) && is_array($_POST['cb'])) {
foreach ($_POST['cb'] as $value) {
$colours. = $value ",";
}
};
$sql="INSERT INTO items (category,title,description,qdescription,price,colours)
VALUES ('$_POST[category]','$_POST[title]','$_POST[description]','$_POST[qdescription]','$_POST[price]','$colours')";
if (!mysql_query($sql)){
die('Error: ' . mysql_error());
}
mysql_close($db);
这里的问题是,你有.
和=
之间的空间字符。如果你想连接字符串,只是省去了空间 -
$colours .= $value . ",";
还请注意,我因为你想要做添加,
以及$value
后添加一个额外的.
字符。
这里最后一个注意事项是关于使用mysql_*
函数。 Please, don't use mysql_* functions in new code.他们不再维护,并且是officially deprecated。看到红色框?请改为了解prepared statements,并使用PDO或MySQLi。
在您迁移到这些较新的方法之前,您还需要注意在将数据插入SQL语句之前对数据进行清理。正如你的代码目前的情况,它非常容易受到SQL注入的影响。
变化这
$colours. = $value ",";
到
$colours .= $value .",";
谢谢你这么多:) – smilerjd 2013-02-22 08:04:31
欢迎你! :) – 2013-02-22 08:05:16
改变这个
$colours. = $value ",";
到
$colours .= $value .",";
你有你的线和.
您=
之间的空间13
最清晰的答案。 – 2013-02-22 08:03:07
非常感谢你:) – smilerjd 2013-02-22 08:09:08
@smi - 很乐意帮忙!请看看我使用'mysql_ *'函数的注意事项...快乐编码! – Lix 2013-02-22 08:12:14