的問題可能是在該行echo $result = mysqli_query($this->conn, $sql) or die("error to delete employee data");
正如我在一個評論說,更換die
字符串mysqli_error($這個 - >連接)應顯示錯誤。
但是一些測試後,我發現,在回波爲變量賦值可能給奇怪的結果,我測試echo $test = "hello" or die("test");
,結果發現,無論是hello
也不test
被顯示在屏幕上,但1
被顯示,這可能是邏輯真。
一個更好的方法,如果查詢被執行可能是:
//other code that stayed the same
$statement = mysqli_prepare($this->conn, "delete from `cusinfo` WHERE TICKET_ID=? AND AGENT_CODE_STAFF_ID IN (SELECT id FROM `users` where tm_groupid = ?)");
$statement = mysqli_stmt_bind_param($this->conn, $params['id'], $tid); //
$sql = msyqli_stmt_execute($statement); // returns either true or false
if ($sql === true) {
echo "Successfull"; // executing successfull code
}
else {
var_dump(mysqli_stmt_error_list($statement)); // handling error
die;
}
這將是預期的方式(他們是「甩死了」)處理一些SQL錯誤。
使用準備好的語句正確的方式將意味着大多數SQL注入能夠被停止,並且使用DELETE查詢,您要確保SQL注入已停止。
注:我在SQL注入方面的專家
注2:我會用PDO準備語句不過,在我看來是更合乎邏輯與
「沒有作品能」是不是工作問題描述。 _爲什麼它不工作? – HoneyBadger
用'mysqli_error($ this-> conn)'替換'die'字符串。它應該告訴你,如果有一個mysql錯誤 – Jelmergu
@Jelmergu,它仍然沒有顯示,而我點擊刪除 –