的问题可能是在该行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,它仍然没有显示,而我点击删除 –