2013-02-22 134 views
-1

我希望$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); 

回答

3

这里的问题是,你有.=之间的空间字符。如果你想连接字符串,只是省去了空间 -

$colours .= $value . ","; 

还请注意,我因为你想要做添加,以及$value后添加一个额外的.字符。


这里最后一个注意事项是关于使用mysql_*函数。 Please, don't use mysql_* functions in new code.他们不再维护,并且是officially deprecated。看到红色框?请改为了解prepared statements,并使用PDOMySQLi

在您迁移到这些较新的方法之前,您还需要注意在将数据插入SQL语句之前对数据进行清理。正如你的代码目前的情况,它非常容易受到SQL注入的影响。

+0

最清晰的答案。 – 2013-02-22 08:03:07

+0

非常感谢你:) – smilerjd 2013-02-22 08:09:08

+0

@smi - 很乐意帮忙!请看看我使用'mysql_ *'函数的注意事项...快乐编码! – Lix 2013-02-22 08:12:14

1

变化这

$colours. = $value ","; 

$colours .= $value .","; 
+0

谢谢你这么多:) – smilerjd 2013-02-22 08:04:31

+0

欢迎你! :) – 2013-02-22 08:05:16

0

改变这个

$colours. = $value ","; 

$colours .= $value .","; 
0

你有你的线和.=之间的空间13

相关问题