2016-04-27 2 views
0

Попытки вставить в report_comment таблицы ReportID и комментарии в Repot_comments таблицуВставить комментарий связан на сообщение ID

Однако теперь я получаю ошибку

Error Number: 1064 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0) VALUES ('Report_Comments')' at line 1 

INSERT INTO `Report_Comments` (0) VALUES ('Report_Comments') 

Filename: models/report/Report_model.php 

Line Number: 61 

контроллера

function comment_add() 
     { 
       if ($query = $this->report_model->create_comment()) { 

        $this->session->set_flashdata('messagetwo', 'You added a Comment'); 
        redirect('main/comments/' .$_POST['ReportID']); 

       } else { 
        $this->session->set_flashdata('messagetwo', 'Sorry not this time'); 
        redirect('main/comments/' .$_POST['ReportID']); 
       } 
     } 

Модель

function create_comment() 
{ 

    $new_comment = array(
     'Comments', $_POST => $this->input->post('Report_Comments') 
    ); 

    $insert = $this->db->insert('Report_Comments', $new_comment); 
    return $insert; 
} 

Посмотреть

<p><?= anchor('main', 'Back home'); ?></p> 

    <?= form_open('main/comment_add'); ?> 

    <?= form_hidden('ReportID', $this->uri->segment(3)); ?> 

    <p><textarea name="Comments" rows="10"></textarea></p> 
    <p><input type="submit" value="add comment"/></p> 

    <?php 
    if ($this->session->flashdata('messagetwo')) { 
     ?> 
     <div class="message flash"> 
      <?php echo $this->session->flashdata('messagetwo'); ?> 
     </div> 
     <?php 
    } 
    ?> 

    </form> 
+0

Дубликат также применяется к именам столбцов. –

+0

Его не дубликат, я удалил старый вопрос, поскольку я чувствовал, что это не имеет никакого смысла, и был беспорядок. Я переписал вопрос и изменил код. – Beep

+0

'правильный синтаксис для использования рядом '0)', и ваш запрос - это '(0) VALUES (' Report_Comments ')', поэтому он является дубликатом. –

ответ

0

Проблема заключается в ваш:

$new_comment = array(
     'Comments', $_POST => $this->input->post('Report_Comments') 
    ); 

Проверить с var_dump($new_comment), первый индекс должен быть 0;

Попробуйте это:

$new_comment = array(
     'Comments' => $this->input->post('Report_Comments') 
    ); 

Предполагая, что ваше поле "Комментарии" и $this->input->post('Report_Comments') возвращает правильную строку.

Here is the documentation of $this->db->insert() for codeigniter

+0

, это ошибка, как бы я сделал это в коде? – Beep

+1

Я отредактировал свой ответ, надеюсь, это вам поможет. –

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