繁体   English   中英

PHP MySQL INSERT语句语法错误

[英]PHP MySQL INSERT statement syntax error

我在使用INSERT语句时遇到问题,并且错误仅显示:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

这根本没有帮助。 到目前为止,我尝试过但失败的版本是:

mysql_query("INSET INTO `cos` VALUES ('".$_GET['prod']."','".$_GET['page']."')");

[不用说两个变量在打印时显示正确的值]我也尝试过在表名周围什么都没有的版本中使用`或',实际上是一百万个组合,没有任何用处。 甚至没有常量或不同的表。 它只是不会插入任何东西。 我已经检查了特权(我以root用户身份登录),并且一切都已就绪。

我已经在具有相同服务器(XAMPP 1.7.7)的两台不同机器上尝试了类似的东西,并且它可以工作。 我完全困惑了! 会是什么

感谢您的时间!

首先,只需正确输入INSERT

像这样使用_GET确实可以打开SQL INJECTIONS ...

看一看MySQL准备好的语句

命名插入数据的列也被认为是一种好习惯 以后,您可以插入多余的列并保留应用程序逻辑。

INSERT INTO cos(rowName1, rowName2) VALUES(?, ?)

? 将准备的语句。

正确:

mysql_query("INSERT INTO `cos` VALUES ('".$_GET['prod']."','".$_GET['page']."')");

您是否尝试过将$ link传递给mysql_query

喜欢:

mysql_query("INSERT INTO `cos` VALUES ('".$_GET['prod']."','".$_GET['page']."')", $link);

编辑:当然,在将任何内容插入数据库之前,您可能必须采取一些安全措施,也许是mysql_real_escape_string()甚至是准备好的语句。

你做错了。 您为什么不逃避这些价值观? php.net文档提供了一些良好且安全的工作示例:

$query = sprintf("SELECT firstname, lastname, address, age FROM friends 
    WHERE firstname='%s' AND lastname='%s'",
    mysql_real_escape_string($firstname),
    mysql_real_escape_string($lastname));

// Perform Query
$result = mysql_query($query);

因此适合您的代码:

$query = sprintf("INSERT INTO `cos` VALUES (%s, %s);", 
        mysql_real_escape_string($_GET['prod']),
        mysql_real_escape_string($_GET['page']));
$result = mysql_query($query);

请,始终逃避您的价值观。 并使用INSERT,而不是INSET :)

首先,这是您正在使用INSET使其与INSERT一样正确

$pro = mysql_real_escape_string($_GET['prod']);
$page = mysql_real_escape_string($_GET['page']);
mysql_query("INSERT INTO `cos` (column1, column2)
             VALUES ('$pro', '$page')" );

你忘了设置列名...

尝试这个:

$prod = $_GET['prod'];
$page = $_GET['page'];
mysql_insert("INSERT INTO 'cos' VALUES('$prod','$page)");

这应该做得很好:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM