我有一個非常簡單的表 - 3列ID | UID | CATDELETE FROM table WHERE UID = x AND CAT = y
我想運行一個mysql刪除刪除UID =東西和CAT =東西的行。但它不起作用。我該怎麼做呢?
$uid = $_POST['UID'];
$cat = $_POST['CAT'];
mysql_query("DELETE FROM Categories WHERE UID = ".$uid." AND CAT=".$cat."");
我有一個非常簡單的表 - 3列ID | UID | CATDELETE FROM table WHERE UID = x AND CAT = y
我想運行一個mysql刪除刪除UID =東西和CAT =東西的行。但它不起作用。我該怎麼做呢?
$uid = $_POST['UID'];
$cat = $_POST['CAT'];
mysql_query("DELETE FROM Categories WHERE UID = ".$uid." AND CAT=".$cat."");
你有一個活動的數據庫連接?如果沒有,您需要在致電mysql_query()
之前創建一個。
除此之外,你可以在查詢中遺忘單引號:
mysql_query("DELETE FROM Categories WHERE UID = ".$uid." AND CAT=".$cat."");
應該是:
mysql_query("DELETE FROM Categories WHERE UID = ".$uid." AND CAT='".$cat."'");
假設CAT
不是一個數字列。
是的,我在腳本的前面有一個數據庫連接。這些建議都沒有奏效。我可以做到這一點,但我無法做到這一點,當我嘗試做一個AND。 UID是一個INT,CAT是一個VARCHAR。 –
@JamesAckerman:你是否像我建議的那樣將單引號添加到查詢中? '$ cat'中的數據是否也有單引號?如果是這樣,它將打破查詢。另外,請注意您的查詢容易受到SQL注入的影響。 – FtDRbwLXw6
行 - 這工作。謝謝。 –
$uid = $_POST['UID'];
$cat = $_POST['CAT'];
mysql_query("DELETE FROM Categories WHERE UID = ".$uid." AND CAT=".$cat."");
VARCHAR需要進行轉義
mysql_query("DELETE FROM Categories WHERE UID = ".$uid." AND CAT='".$cat."'");
另一個提示使用mysql_real_escape_string或檢查用戶輸入的另一種形式
$uid = mysql_real_escape_string($_POST['UID']);
$cat = mysql_real_escape_string($_POST['CAT']);
用於'mysql_real_escape_string'的+1。 – ComFreek
您的腳本很容易出現的SQL注入。一定要妥善消毒你的參數。最好的方法是使用PDO或MySQLi和準備語句。 – TimWolla
是以太網還是兩個列(UID,CAT)都是VARCHAR/CHAR列? – Mithrandir
你是否通過迴應構建的查詢和PHPMyAdmin或類似的東西來檢查是否有匹配的數據集? – TimWolla