我在php中爲mysqli做了一個oop刪除功能。 函數被執行,但它不刪除給定的項目。php/mysqli刪除功能被認可,但它並沒有刪除該項目
THS是我的代碼:
PHP(的mysqli類)
class mysqli_Functions
{
private $conn;
function __construct()
{
$this->conn = mysqli_connect("localhost","root","usbw");
if (!$this->conn) {
echo "Cannot connect to server";
exit();
}
$db = mysqli_select_db($this->conn,"geweldig");
if (!$db) {
echo "Cannot select database";
exit();
}
}
public function selectAll($tablename)
{
return mysqli_query($this->conn,"SELECT * FROM ".$tableName);
}
public function select()
{
}
public function update()
{
}
public function delete($query, $realEscape = false)
{
if(!empty($realEscape)){
$what = mysqli_real_escape_string($this->conn, $realEscape);
$q = $query .' '. $realEscape;
return mysqli_query($this->conn, $q);
}
else{
return mysqli_query($this->conn, $query);
}
}
}
PHP(如果函數被調用)
<?php
$mysqli_Functions::delete("DELETE FROM modules WHERE id=" , $_POST['id']);
?>
Ajax代碼(要觸發事件)
$.ajax({
type: 'post',
url: 'actions/module-delete.php',
data: {'id': id}
});
// Reload
setTimeout(function(){
location.reload();
}, 2000);
}
因此,與上面的代碼試圖刪除項目與ID。該ID在一個按鈕中,這就是爲什麼我們使用AJAX。
有人能解釋爲什麼上述的心不是通過ID
請不要做「oop功能」。使用原始mysqli而不需要任何中間類別 –
此外,您的代碼易受SQL注入攻擊。你必須使用準備好的語句。 –
id在Ajax函數中爲哪個值賦值? – Gavin