php/mysqli delete函数已被访问,但它不会删除该项
我正在用php为mysqli制作一个oop delete函数。 该函数已执行,但不会删除给定项 这是我的代码: PHP(Mysqli类) PHP(调用函数的地方) 因此,通过上面的代码,我试图删除带有id的项目。id位于按钮中,这就是我们使用AJAX的原因php/mysqli delete函数已被访问,但它不会删除该项,php,oop,mysqli,Php,Oop,Mysqli,我正在用php为mysqli制作一个oop delete函数。 该函数已执行,但不会删除给定项 这是我的代码: PHP(Mysqli类) PHP(调用函数的地方) 因此,通过上面的代码,我试图删除带有id的项目。id位于按钮中,这就是我们使用AJAX的原因 有人能解释一下为什么上面的代码没有按id删除项目吗?$mysqli_函数::delete()看起来它是静态调用delete(),但我不确定,因为您使用的是$mysqli_函数,而不是类名,所以: 没有$this,因为它不是对象 无论如何都不
有人能解释一下为什么上面的代码没有按id删除项目吗?
$mysqli_函数::delete()
看起来它是静态调用delete()
,但我不确定,因为您使用的是$mysqli_函数
,而不是类名,所以:
- 没有
,因为它不是对象$this
- 无论如何都不会调用
\u构造()
$db = new mysqli_Functions();
$db->delete("DELETE FROM modules WHERE id=" , $_POST['id']);
注意
->
而不是:
为什么要将该方法作为静态调用?
你应该把它称为公共的,类似这样的:
$id = $_POST["id"];
$query = "DELETE FROM modules WHERE id = {$id}";
$mysqli = new mysqli_Functions();
$mysqli->delete($query, $id);
请不要做“oop函数”。使用原始mysqli而不使用任何中间类。此外,您的代码容易受到SQL注入的攻击。您必须使用准备好的语句。在Ajax函数中id在哪里分配了值?Select*没有效率,您不应该真正拥有selectall函数。我已经在index.php上这样做了,因为
$mysqli_Functions=new mysqli_Functions()代码>但是您使用的是静态调用:
不要这样做。
$.ajax({
type: 'post',
url: 'actions/module-delete.php',
data: {'id': id}
});
// Reload
setTimeout(function(){
location.reload();
}, 2000);
}
$db = new mysqli_Functions();
$db->delete("DELETE FROM modules WHERE id=" , $_POST['id']);
$id = $_POST["id"];
$query = "DELETE FROM modules WHERE id = {$id}";
$mysqli = new mysqli_Functions();
$mysqli->delete($query, $id);