[英]Record can't delete in PHP
我目前正在研究食品餐廳系統。
我是 PHP 的初學者。 我在從數據庫中刪除記錄時遇到了一點問題。當我嘗試刪除記錄時,它會取消鏈接圖像,但不會刪除行。 我該如何解決?
任何幫助,將不勝感激。 謝謝你。
這是我的腳本::
產品列表.php
<?php
$pd = new Product();
$fm = new Format();
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['submit'])){
$insertProduct = $pd->productInsert($_POST,$_FILES);
}
if(isset($_GET['delpro'])){
$id = $_GET['delpro'];
$delpro = $pd->delProById($id);
}
?>
<div class="grid_10">
<div class="box round first grid">
<h2>Post List</h2>
<div class="block">
<table class="data display datatable" id="example">
<tbody>
<?php
$getPd = $pd->getAllProduct();
if($getPd){
$i = 0;
while($result = $getPd->fetch_assoc()){
$i++;
?>
<tr class="odd gradeX">
<td><?php echo $i;?></td>
<td><?php echo $result['productName'];?></td>
<td><?php echo $result['catName'];?></td>
<td><?php echo $result['brandName'];?></td>
<td><?php echo $fm->textShorten($result['body'],50);?></td>
<td><?php echo $result['price'];?></td>
<td><img src="<?php echo $result['image']; ?>" height="40px" width="60px"/></td>
<td>
<?php
if($result['type'] == 0){
echo "Featured";
} else{
echo "General";
}
?></td>
<td><a href="productedit.php?proid=<?php echo $result['productId'];?>">Edit</a> || <a onclick="return confirm('Are you sure to delete!')" href="?delpro=<?php echo $result['productId'];?>">Delete</a></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
</div>
產品.php
public function delProById($id){
$query = "SELECT * FROM tbl_product WHERE productId = '$id'";
$getData = $this->db->select($query);
if($getData){
while($delImg = $getData->fetch_assoc()){
$dellink = $delImg['image'];
unlink($dellink);
}
}
$delquery = "DELETE FROM tbl_product WHERE productId = '$id'";
$delData = $this->db->delete($query);
if($delData){
$msg = "<span class='success'>Product Deleted Successfully</span>";
return $msg;
}
else {
$msg = "<span class='error'>Product Not Deleted.</span>";
return $msg;
}
}
您正在使用錯誤的查詢執行刪除語句。 您應該執行以下操作,而不是包含 SELECT 語句的 $query:
$delData = $this->db->delete($delquery);
我不知道您使用的是什么框架(看起來像 CodeIgniter 左右)但顯然您正在嘗試運行錯誤的查詢。 嘗試:
$delData = $this->db->query($delQuery)
代替
$delData = $this->db->delete($query)
如果 PHP 框架確實是 CodeIgniter (或任何框架),則強烈建議不要在 Z2FEC392304A7F9B37AC1 中運行原始 sql 請參考: CodeIgniter 查詢生成器 Class
MySQLi中沒有->delete function。 你將只使用
$this->db->query($query);
SQL 中的每個命令都在該行中。 對 SQL object 的調用只是內部數據庫的代理。 SQL 的命令庫是內部的。 所以我們只使用變量,即 object,現在連接后,我們刪除查詢本身帶來的記錄。
我假設您正在使用一些 class 或管理 SQL 查詢的框架來使用 select 和刪除方法。
只需更改查詢變量名稱: $delData = $this->db->delete( $query );
到:$delData = $this->db->delete( $delquery );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.