2012-07-03 2 views
1

Использование CI в первый раз, и я разбиваю себе голову этой, казалось бы, простой проблемой. Мой запрос не будет вставлять запись.Codeignighter Record wont insert

В попытке отладить возможную проблему код вставки был упрощен, но я до сих пор не чувствую радости.

По существу, я использую;

$data = array('post_post' => $this->input->post('ask_question')); 
$this->db->insert('posts', $data); 

Я не получаю никаких ошибок (хотя это, возможно, из-за отключения их в конфигурации/database.php из-за другую связанный CI травму: - $)

Ive использовал

echo print $this->db->last_query(); 

чтобы получить сгенерированный запрос, показанный ниже:

INSERT INTO `posts` (`post_post`) VALUES ('some text') 

Я вставил этот запрос в PhpMyAdmin, он не вставляет не р РОБЛЕМА. Ive даже попытался использовать $this->db->query() для выполнения выведенного запроса выше «вручную», но опять же запись не будет вставляться.

Схема таблиц «столбиков» DB - это просто два столбца, post_id & post_post.

Пожалуйста, любые указатели на Что происходит здесь было бы весьма признателен ... спасибо

ответ

1

ОК .. Решено, после долгих ворчаний с CI.

Получил его, установив устойчивое соединение с ложным.

$db['default']['pconnect'] = FALSE;

Вздох

0

вещи обычно выглядят нормально, все, что вы сказали, предполагает, что он должен работать. Моим первым инстинктом было бы проверить, что то, что вы вставляете, совместимо с вашим полем SQL.

Просто классная функция CI; Я бы посоветовал вам взглянуть на класс CI Database Transaction. Операции позволяют обернуть запрос/запросов внутри транзакции, которая может быть откат при неудаче, а также может сделать обработку ошибок проще:

$this->db->trans_start(); 
    $this->db->query('INSERT INTO posts ...etc '); 
    $this->db->trans_complete(); 

    if ($this->db->trans_status() === FALSE) 
    { 
     // generate an error... or use the log_message() function to log your error 
    } 

В качестве альтернативы, одна вещь, которую вы можете сделать, это положить заявление Вставьте SQL в $ this-> db->query (your_query_here), вместо вызова вставки. Существует функция запроса CI, называемая привязкой Query, которая также автоматически удалит ваш переданный массив данных.

Дайте мне знать, как это происходит, и надеемся, что это поможет!

+0

Нет, не будет работать. Ive проверил поля, чтобы убедиться, что строка текста может быть вставлена. Ive проверил разрешения пользователей DB, чтобы проверить, что они могут добавить, ive попробовал другую таблицу, используя ваш код выше инструкции if не запускается. Что мне не хватает ??? < – Cri001

Смежные вопросы