Это моя функция контроллера:
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;
Немного дикая догадка, но, глядя на ваш метод контроллера и имена переменных, я предполагаю, что вы передаете заголовок через url, что-то вроде
http://example.com/admin/delete/Title to be deleted
Это заставляет меня думать, что ваш запрос не работает из-за кодирования пробелов в URL (или других символов), которые не будут соответствовать незашифрованным пространствам вашего db.
Попробуйте:
function delete_article_db($title) { $this->db->where('Title', rawurldecode($title) ); $this->db->delete('article'); }