[英]Why executing PHP mysql_query fails
為什么此PHP代碼(mysql_query刪除用戶名為$phpVar
)什么都不做?
mysql_query("DELETE FROM xraydeath WHERE user = $user");
您需要在字符串周圍加上引號,如下所示:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
您忘記了用戶周圍的引號:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
你在期待什么? 如何失敗? 除了將查詢發送到服務器之外,Mysql_query不應以您使用的形式執行任何操作。
$result = mysql_query (...);
// use the result if any.
if (!$result) {
die('Invalid query: ' . mysql_error());
}
// check the error that you might have
您需要將$user
放在引號中
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."';");
即使沒有行被刪除,DELETE也將成功執行,因此要獲得實際刪除的行數,請使用mysql_affected_rows()
$x = mysql_query("..");
echo "There were ".mysql_affected_rows()." rows affected";
**請盡量不要使用mysql_*
切換到PDO。
假設xraydeath.user
是字符類型,則該值需要用引號引起來。 如果$user
尚不包含引號,請嘗試:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
對於踢,嘗試設置$user = "' OR '1'='1";
! (閱讀有關SQL注入攻擊的信息,您應該真正切換到mysqli!)
該表也可能沒有匹配的行,因此不會刪除任何內容。 如果不知道已為$user
和您的數據分配了什么,就無法知道。
試試這個:
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."'");
要么
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."';");
在mysql中使用的每個php變量,都將其放入'“。$ variable。”'中。
首先:不建議使用mysql。 您應該使用mysqli。 第二:用戶是哪種類型? 如果為int :(面向對象的樣式)
mysqli::query("DELETE (what you want) FROM xraydeath WHERE `user` = '".$user."'");
如果是varchar(string):
mysqli::query("DELETE (what you want) FROM xraydeath WHERE `user` LIKE '".$user."'");
或(procedurel syle)
mysqli_query((your mysqli link), "DELETE (what you want) FROM xraydeath WHERE `user` LIKE/= '".$user."'");
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.