Codeigniter从表中删除记录,其中page_id和user_id

时间:2017-08-04 06:57:40

标签: php mysql codeigniter multiple-conditions

我有一个数据库,用户可以制作多个页面,如下图所示。enter image description here

我正在使用codeigniter MVC,我想允许用户删除他们的页面。

因此,如果page_id = 1传递user_id =1进行删除,则只应删除表中user_id = 1和page_id = 1的行。

到目前为止,这是我的model_page.php代码,但user_id 1的所有页面都在删除

function delete_user_page($user_id, $page_id){

    $query = $this->db->where('user_id', $user_id and 'page_id', $page_id);
    return $this->db->delete('mysql_table');

}     

由于

3 个答案:

答案 0 :(得分:7)

function delete_user_page($user_id, $page_id){
    $cond  = ['user_id' => $user_id, 'page_id' => $page_id];
    $query = $this->db->where($cond);
    return $this->db->delete('mysql_table');
} 

逻辑是我们需要制作一个包含所有参数列表的数组。

答案 1 :(得分:1)

您可以尝试使用

$sql = "DELETE FROM mysql_table WHERE user_id = ? AND page_id = ?";
$this->db->query($sql, array($user_id, $page_id));

OR

$this->db->delete('mysql_table', array('user_id' => $user_id,'page_id' => $user_id));

答案 2 :(得分:0)

您可以使用关联数组方法::

function delete_user_page($user_id, $page_id)
{
    $where_cond = ['user_id' => $user_id, 'page_id' => $page_id];
    return $this->db->delete('mysql_table', $where_cond);
}
// DELETE FROM mysql_table WHERE user_id = $id AND page_id = $page_id

寻找特定数据: https://www.codeigniter.com/userguide3/database/query_builder.html#looking-for-specific-data

删除数据: https://www.codeigniter.com/userguide3/database/query_builder.html#deleting-data