簡體   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