Das Problem ist wahrscheinlich in der Linie echo $result = mysqli_query($this->conn, $sql) or die("error to delete employee data");
Wie ich in einem Kommentar sagte: Ersetzen des die
String mit mysqli_error ($ this-> conn) sollte ein Fehler angezeigt.
Doch nach einigen Tests fand ich, dass in einem Echo einer Variablen zugewiesen wird vielleicht seltsame Ergebnisse geben, ich testen echo $test = "hello" or die("test");
und festgestellt, dass weder hello
noch test
auf dem Bildschirm angezeigt wurde, aber 1
angezeigt wurde, was wahrscheinlich die boolean wahr war.
Eine bessere Möglichkeit, zu sehen, ob die Abfrage ausgeführt wurde sein könnte:
//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;
}
Dies wird einige SQL-Fehler in einer Weise behandeln, die zu erwarten ist (sie sind ‚abgeladen und starb‘).
Mit vorbereiteten Anweisungen wird der korrekte Weg bedeuten, dass die meisten SQL-Injektionen gestoppt werden können, und mit einer DELETE-Abfrage möchten Sie sicherstellen, dass SQL-Injektionen gestoppt werden.
Hinweis: Ich bin kein Experte auf SQL-Injektionen
Anmerkung 2: I PDO hätte für vorbereitete Anweisungen verwendet aber, so scheint es mir viel mehr logisch zu sein, mit zu arbeiten
„kann nicht funktioniert“ ist kein Problembeschreibung. _Warum_ geht es nicht? – HoneyBadger
Ersetzen Sie die 'die' Zeichenfolge durch' mysqli_error ($ this-> conn) '. Es sollte Ihnen sagen, wenn es einen mysql Fehler gibt – Jelmergu
@Jelmergu, Es zeigt immer noch nichts, während ich delete klicken –