为了账号安全,请及时绑定邮箱和手机立即绑定

SQL 删除功能在表中不起作用

SQL 删除功能在表中不起作用

PHP
蝴蝶不菲 2021-07-02 06:01:41
我有三个相互连接的文件,我的问题是我的删除功能似乎不起作用。我想知道我的“公共函数 Delete_Lease($db) {”中缺少什么,代码如下所示。基本上,我使用一个 for each 来显示一个表格,编辑没有问题,但删除只是停留在同一页面上并且没有任何效果。表名: for_lease值: leaseid、lease_type、lease_name、lease_address、lease_price、lease_condition、lease_description、featured_photo、createddatefor_lease.php<?php  session_start();  require_once('for_lease.vc.php');?> <?php foreach($lstProperty as $rowProperty) { ?>       <tr align="center">         <td>          <a href="for_lease_edit.php?i=<?php echo($rowProperty['leaseid']); ?>"><input type="submit" class="btn bg-color-blue color-white form-control" name="edit" value="EDIT"></a>         </td>         <td>           <?php             echo($rowProperty['lease_name']);           ?>         </td>         <td>           <?php             echo($rowProperty['lease_address']);           ?>         </td>         <td>           <?php             echo($rowProperty['lease_type']);           ?>         </td>         <td>           <?php             echo 'PHP'.' '.number_format(($rowProperty['lease_price']));           ?>         </td>         <td>           <?php             echo($rowProperty['lease_condition']);           ?>         </td>         <td>           <?php             echo( date("Y-m-d", strtotime($rowProperty['createddate']) ));           ?>         </td>         <td>           <a href="for_lease.php?delete=<?php echo($rowProperty['leaseid']); ?>" onclick="return confirm('Are you sure?');"><input type="submit" class="btn bg-color-red color-white form-control" name="delete" value="DELETE"></a>         </td>       </tr> <?php } ?>
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

Delete_Lease 缺少绑定和执行以及要删除的租约 ID。用于删除的 sql 不需要“*”。


属性.mc.php


public function Delete_Lease($db, $leaseid) {

    $stmt = $db->prepare(

        "DELETE FROM

        for_lease

        WHERE

        leaseid = :leaseid "

        );  

    $stmt->execute(['leaseid' => $leaseid]);

}

for_lease.vc.php


if (isset($_GET['delete'])){

    $rowProperty = $mcProperty->Delete_Lease($db, $_GET['leaseid']);

}

修复覆盖 for_lease.php 中删除 ID 的删除按钮


<td>

    <a href="for_lease.php?leaseid=<?php echo($rowProperty['leaseid']); ?>" onclick="return confirm('Are you sure?');"><input type="submit" class="btn bg-color-red color-white form-control" name="delete" value="DELETE"></a>

</td>


查看完整回答
反对 回复 2021-07-09
?
湖上湖

TA贡献2003条经验 获得超2个赞

你不是在执行 sql 语句,你只是在准备它。此外,您的代码设置方式,您需要将 传递leaseid给您的删除功能。


试试这个。


for_lease.vc.php


<?php

  $routePath = "../";


  require_once($routePath . "_config/db.php");

    $dbConfig = new config_db();

    $db = $dbConfig->init();


  require_once($routePath . "_mc/Property.mc.php");


  $mcProperty = new Property_MC();


  $lstProperty = $mcProperty->SelectObj_ByLeaseId($db);


  if (isset($_GET['delete'])){

    $rowProperty = $mcProperty->Delete_Lease($db, $_GET['delete']);

  }

?>

属性.mc.php


 public function Delete_Lease($db, $leaseid) {

  $stmt = $db->prepare(

    " DELETE FROM

        for_lease

      WHERE

        leaseid = :leaseid "

  );


  $stmt->execute([':leaseid' => $leaseid]);  


  }


查看完整回答
反对 回复 2021-07-09
  • 2 回答
  • 0 关注
  • 255 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信