这是我的控制器功能:
function delete_article($title){
if ($this->session->userdata('User') && $this->session->userdata('User') == 'admin@example.com') {
$this->load->model('Article', 'Article', TRUE);
$this->Article->delete_article_db($title);
redirect('admin/user_article');
} else {
redirect('');
}
}
这是我删除数据库记录的模型函数:
function delete_article_db($title) {
$this->db->where('Title', $title);
$this->db->delete('article');
}
当我运行此代码时,没有任何内容被删除。但是,代码不会触发任何错误或警告。
这是我的MySQL表结构:
CREATE TABLE IF NOT EXISTS `article` (
`Name` text NOT NULL,
`Email` text NOT NULL,
`Phone` text NOT NULL,
`Address` text NOT NULL,
`Literature` text NOT NULL,
`Title` text NOT NULL,
`Submission_Name` text NOT NULL,
`Additional_Name` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
答案 0 :(得分:2)
有点猜测,但是看看你的控制器方法和变量名,我假设你通过url传递了 title ,比如
http://example.com/admin/delete/Title to be deleted
这导致我认为您的查询无效,因为url(或其他字符)中的空格的编码与数据库中未编码的空格不匹配。
尝试:
function delete_article_db($title) {
$this->db->where('Title', rawurldecode($title) );
$this->db->delete('article');
}