[英]SQL insert and update doesn't update or insert all the records, only a few record
[英]UPDATE doesn't affect the record at all
我正在嘗試更新我的數據庫中的一些記錄,這段代碼以前一直在運行,但現在已經不存在了。 將id變量更改為固定數后,代碼仍然不會影響數據庫。 沒有發出錯誤。
<?php
header('Access-Control-Allow-Origin: *');
error_reporting(E_ALL);
ini_set("display_errors", 1);
$db = new PDO('mysql:host=localhost;dbname=xxx;charset=utf8', 'xxx', 'xxx');
$party = ($_POST['party']);
$id = ($_POST['id']); // $id is a string with ids separated by commas (1,2,3,4 e.t.c.)
$state = ($_POST['state']); // $state is either 1 or 0.
$code = ($_POST['fetchCode']);
$stmt = $db->prepare("UPDATE wishes SET state = $state WHERE fetchCode = '$code' AND partyID = '$party' AND id IN ($id); ");
$stmt->execute();
echo json_encode("Done");
?>
我用於數據庫連接的用戶只有更新狀態列的權限,因此我沒有看到SQL注入的風險。 我是對的,我的代碼有什么問題?
至於你問題的第二部分......
...我沒有看到SQL注入的風險。 我是對的......
fetchCode
被添加到你的表中,其中可能包含一個像"9focuspoints's New Code"
這樣'
字符"9focuspoints's New Code"
轉義就會破壞這一點,導致受挫的客戶甚至可能是一個不受歡迎的深夜客戶服務電話取決於關於操作的嚴重性。 這只是一種糟糕的形式,你已經完成了大部分的語法工作來實際准備語句,所以你也可以完成這項工作。
至於問題的前一部分,我是,你應該對事件的變化過於懷疑:
...此代碼以前一直在運行但不再...
自從這項工作以來有什么變化? 如果這段代碼沒有改變,那么我懷疑你會在這里發布很多幫助。 要檢查的一些問題:
var_dump
變量時,它們是否包含您期望的值?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.