2012-09-11 54 views
0
mysql_query($sqlQ, $connection); 
mysql_query("DELETE FROM Leaderboards WHERE UserName=" . $row['UserName'] . " LIMIT 1", $connection); 
echo("Success3"); 

表信息由{UserName,Cash,Assets}組成。MySQL PHP DELETE在這個實例上不起作用?

$ row ['UserName']的數據爲$ row ['Assets']有數據,INSERT通過查詢工作,但它不會從數據庫表中刪除該行。

告訴我我做錯了什麼,這是我第一次使用PHP & MySQL,所以我不知道我在做什麼。

+0

停止使用mysql_函數PDO或MySQLi的。做到這一點。 – wesside

+0

我喜歡你的'echo(「Succes3」);'風格,它總是成功的...... – dbf

+0

@dbf這不是我所有的代碼....我有不同的形式向我的數據庫添加查詢,因爲我正在排行榜。成功2 =添加查詢而不刪除,與成功3 =添加刪除查詢。 –

回答

2

UserName一個字符串?你缺少報價。

mysql_query("DELETE FROM Leaderboards WHERE UserName='" . $row['UserName'] . "' LIMIT 1", $connection); 
+1

還有:mysql_escape_string那mofo。更好的是,使用參數化查詢。此外,檢查mysql的錯誤,而不是忽略任何錯誤 - 它可能會拋出一個語法錯誤,應該讓OP提示他們做錯了什麼。 –

+0

andddd獲勝。 – wesside

+0

另外:還有:PDO或者mysqli –

1

所有mysql_ *函數都被棄用,並將在未來版本的PHP中被刪除。 You should use an alternative

您必須轉義查詢中使用的數據。使用MySQLi函數,您的代碼將爲:

mysqli_query($sqlQ, $connection); 
mysqli_query("DELETE FROM Leaderboards WHERE UserName='" . mysqli_real_escape_string($connection, $row['UserName']) . "' LIMIT 1", $connection); 
echo("Success3"); 

您還缺少用戶名引號。

我不推薦,但如果你真的想使用mysql_ *函數,然後使用:

mysqli_query("DELETE FROM Leaderboards WHERE UserName='" . mysql_real_escape_string($row['UserName']) . "' LIMIT 1", $connection); 
+0

你喜歡那個'echo(「Success3」)'style也不是嗎? – dbf

+0

你爲什麼這麼問?這是OP的代碼,看看這個問題。 – Jocelyn

+0

嗯,我正在做一個小項目,只要linux服務器不更新PHP我很好吧? 此外,我可以隨時修復它,當它休息。我實際上是要切換出所有的mysql語法,直到我發現它不同於mysqli –