簡體   English   中英

插入錯誤的SQL語法

[英]insert into error sql syntax

我的測試代碼是:

<?php
$connessione = mysql_connect("***", "***", "***");
mysql_select_db("***", $connessione);

$risultato = mysql_query("SELECT * FROM servem_vote", $connessione);

if(mysql_query("INSERT INTO servem_vote (uid,lastvote) VALUES ($uid,now()) ON DUPLICATE KEY UPDATE lastvote=now();

")) {
    header('location:/home.php'); }
else {
    echo "Error: " . mysql_error(); }
mysql_close($con);
?> 

錯誤:您的SQL語法有錯誤; 檢查與您的MySQL服務器版本相對應的手冊以獲取正確的語法,以在第1行的'now())ON DUPLICATE KEY UPDATE lastvote = now()'附近使用

D B:

http://prntscr.com/ef7544

我在哪里做錯了?

您共享的代碼中缺少$uid 您不會在任何地方設置該值,但是會嘗試將其用作INSERT查詢的一部分。

如果它來自表單數據,請在嘗試使用它之前從$_REQUEST超全局變量中獲取它:

$uid = $_REQUEST['uid']

如果它不是MySQL表中的整數,則需要將其用單引號括起來作為語句的一部分。

INSERT INTO servem_vote (uid,lastvote) VALUES ('$uid',now())
ON DUPLICATE KEY UPDATE lastvote=now();

我不知道這行有什么作用:

$risultato = mysql_query("SELECT * FROM servem_vote", $connessione);

您似乎對該查詢的結果集不做任何事情。

最重要的是 :正如許多其他人所說,您需要清理數據,並且應該依靠PDO或mysqli *函數安全地與數據庫交互。 在這里查看答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM