3 回答

TA貢獻1852條經驗 獲得超7個贊
我犯了一個菜鳥錯誤,我試圖在MSSQL中更新ID和時間戳列,這是不允許的。我將自己的代碼更改為此,并且效果很好:
$user =[
"id" => $_POST['id'],
"firstname" => $_POST['firstname'],
"lastname" => $_POST['lastname'],
"email" => $_POST['email'],
"age" => $_POST['age'],
"location" => $_POST['location'],
];
$sql = "UPDATE users
SET firstname = :firstname,
lastname = :lastname,
email = :email,
age = :age,
location = :location
WHERE id = :id";

TA貢獻1883條經驗 獲得超3個贊
您是否直接在MSSQL Management Studio中嘗試了該查詢?
之后,您會看到它工作正常,請嘗試“回顯” POST變量以查看是否正確獲取了它們。

TA貢獻1946條經驗 獲得超3個贊
我沒看到INSERT。相反,您僅使用UPDATE意味著僅修改現有記錄。這是你想要的嗎?
$sql = "UPDATE users
SET id = :id,
firstname = :firstname,
lastname = :lastname,
email = :email,
age = :age,
location = :location,
date = :date
WHERE id = :id";
在這里,您通過選擇一個(所有)記錄id = :id,并在此處SET id = :id將其設置id為一個已設置的值。Is不會破壞某些內容,但這暗示您邏輯中的某些內容是錯誤的。
順便說一句,您允許每個客戶更改記錄。不是SQL注入,但很可能非常糟糕。
- 3 回答
- 0 關注
- 167 瀏覽
添加回答
舉報