php - 无法从数据库中删除

标签 php mysql codeigniter

告诉我,可能是什么问题?我做了一切应该做的事情,但不断显示“错误”。 Controller :

<?php
  class Boss extends CI_Controller {

  function __construct() 
  {
      parent:: __construct();

      $this->load->model('boss_model');
      $this->load->model('news_model');
      $this->load->model('reviews_model');
  }

  public function index()
  {
      if($this->userlib->logged_in_boss() == FALSE)
          show_404();



      $data['news'] = $this->news_model->get_news();
      $data['reviews'] = $this->reviews_model->get_reviews();

      $this->load->view('boss/main.php', $data);
}

public function review_del($id)
{
      $delete = $this->reviews_model->del_review($id);

      if($delete)
      {
          echo "Success";
      }
      else
      {
          echo "Error";
      }
  }
}

评论模型:

<?php
class Reviews_model extends CI_Model {

public function del_review($id = null)
{
    $this->db->delete('reviews', array('id' => $id));
}
}

附注- 表“评论”不为空,“数据库”包含在 autoload.php

最佳答案

del_review 不返回值,因此 $delete 永远不会获得正确的结果值,并且始终评估为 false。因此,删除本身可能已经成功,但您永远不会知道。 ;)

最简单:像这样更改:

public function del_review($id = null)
{
    return $this->db->delete('reviews', array('id' => $id));
}

我认为这应该返回删除语句本身是否成功。这并不能告诉您实际的行是否被删除。也许之前已经被别人删除了。如果您想检查这一点,可以使用以下命令:

public function del_review($id = null)
{
    $this->db->delete('reviews', array('id' => $id));
    return $this->db->affected_rows() > 0;
}

这将执行删除语句,然后检查是否删除了实际行。因此,当您尝试删除不存在的记录时,也会收到错误消息。

关于php - 无法从数据库中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119701/

相关文章:

php - Codeigniter + ajax(jQuery) session 问题

php - 在 CodeIgniter 中列出表的一些用户

php - Opencart 重定向到 www.localhost.com

mysql - codeigniter 使用 case 语句进行连接

php - 获取 SQLSTATE[HY000] : General error but query is performed anyway

mysql脚本变量和max函数

database - MySQL Insert in table if it doesn't exist if it does not already ¿我做得对吗?

MySql - 循环遍历每一行的一个月中的日期

php - 使用 pdo 按名称对行组求和

php - 时间相关算法的性能