【发布时间】:2016-04-02 18:16:12
【问题描述】:
我有这个mysql 查询:
$sql = "INSERT INTO lijsten(naam, niveau, nederlands, duits, frans, grieks,
engels, latijn, spaans, wiskunde, natuurkunde, scheikunde, geschiedenis,
economie, aardrijkskunde, ANW, godsdienst)
VALUES(\$_POST["naam"]\,\$_POST["niveau"]\,\$_POST["nederlands"]\,\$_POST["duits"]\,\$_POST["frans"]\,\$_POST["grieks"],\$_POST["engels"]\,\$_POST["latijn"]\,\$_POST["spaans"]\,\$_POST["wiskunde"]\,\$_POST["natuurkunde"]\,\$_POST["scheikunde"]\,\$_POST["geschiedenis"]\,\$_POST["economie"]\,\$_POST["aardrijkskunde"]\,\$_POST["ANW"]\,\$_POST["godsdienst"]\)";
通过这个函数发送到数据库:
function connectDB($sql) {
$DBcon = mysql_connect(host, user, pass) or die(mysql_error());
mysql_select_db(database);
$result = mysql_query($query) or die(mysql_error());
mysql_close($DBcon);
return $result;
但是当我尝试运行它时,它给了我一个 php 解析错误:
PHP Parse error: syntax error, unexpected 'naam' (T_STRING) in /media/usbdisk/website/www/boeken/naardb.php on line 11
谁能告诉我我犯了什么错误?我已经尝试了多种查询方式,但都没有奏效。
【问题讨论】:
-
查找 MySQL 语法:dev.mysql.com/doc/refman/5.0/en/insert.html
-
您在构建 SQL 查询时犯了很多很多错误。研究使用准备好的语句。它不仅更安全,而且会使您正在创建的字符串连接问题变得毫无意义。
-
您试图转义的引号不存在。但是,如上所述,甚至不用费心修复使用参数化查询的问题。此当前代码将对 SQL 注入开放。
naam错误是因为"正在关闭PHP 中$sql变量的字符串封装。
标签: php mysql database parse-error php-parse-error