[英]How do I update a certain column when a value from the same row equals a variable?
我一直試圖這樣做幾個小時,我不能完全理解它。 我有一個名為“requests”的表,其中包含“deletekey”和“deleted”列。 “deletekey”是一個隨機唯一編號(數據類型文本),默認情況下“刪除”設置為0(數據類型布爾值),當用戶輸入deletekey時,它將“已刪除”更改為1.但是我無法讓它發揮作用。 這是我的代碼,我不知道我做錯了什么:
$key = $_GET["delkey"];
$link = mysqli_connect("localhost","username","password","dbname");
$query = 'UPDATE requests SET deleted = True WHERE deletekey = "$key"';
$result = $link->query($query);
不應該是WHERE deletekey = '$key
',那么? deleted
字段永遠不會等於$key
任何內容,因為deleted是一個簡單的布爾值,而$ key可能是一個int / char / varchar類型的東西。
請注意,您很容易受到SQL注入攻擊 。 在了解問題以及如何避免問題之前,請停止處理此類代碼。
這應該有所幫助,並且還將提供針對SQL注入的保護:
$link = mysqli_connect("localhost","username","password","dbname");
$key = $link->real_escape_string($_GET["delkey"]);
$query = sprintf("UPDATE requests SET deleted = 1 WHERE deletekey = '%s'", $key);
$result = $link->query($query);
它的deletedkey =“$ key”吧? 並且未刪除=“$ key”:
$key = $_GET["delkey"];
$link = mysqli_connect("localhost","username","password","dbname");
$query = 'UPDATE requests SET deleted = true WHERE deletedkey = "$key"';
$result = $link->query($query);
嘗試這個?
$link = mysqli_connect("localhost","username","password","dbname");
$key = $link->real_escape_string($_GET["delkey"]);
$query = "UPDATE `requests` SET `deleted` = true WHERE `deletedkey` = $key";
$result = $link->query($query);
查詢是一個字符串。 並將變量添加到您需要鍵入的字符串
$query = 'UPDATE requests SET deleted = True WHERE deleted = '".$key."';
區別在於如何將變量放入字符串中。 你必須在php中這樣做。 $query = "randomtext ". $randomvar ." ";
其中重點是". $var ."
在字符串里面。 這個我類似於javas "+ var +"
$query = 'UPDATE requests SET deleted = 1 WHERE deletekey = "$key"';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.