CodeIgniter Вызов неопределенного метода prepare - PullRequest
0 голосов
/ 13 марта 2020

Я очень новичок в CI Framework. Я работаю над проектом, и все идет хорошо, пока я не попытаюсь отредактировать строку в БД с помощью формы. Я получаю эту ошибку

Сообщение: вызов неопределенного метода CI_DB_mysqli_driver :: prepare ()

Вот мой код в моем контроллере.

  public function edit($id) {
    $alimente = $this->db->query('select alimente.id, alimente.name FROM alimente  WHERE id = "' . $id . '" order by name desc')->result();
    $content = $this->parser->parse('alimente/edit_alimente', array("ALIMENTE" => $alimente), true);
    $TITLE = "Modifica";
    $array = array('TITLE' => $TITLE, 'CONTENT' => $content);
    $this->parser->parse('TEST', $array, false);
}

public function edit_done() {
    $name = $this->input->post("name");
    $id = $this->input->post("id");

    $query = $this->db->prepare("update alimente set name = '" . $name . "' where id = '" . $id . "'")->result();
    $query->execute($name, $id);

    redirect("alimente");

И вот мое мнение file

<form method="post" action="{SITE_URL}/alimente/edit_done">

    <div class="form-group">

        {ALIMENTE}    
        <label> Id aliment</label>
        <input type="text" name="id" value= "{id}" readonly="true"class="form-control" />
        <label> Nume aliment</label>
        <input type="text" name="name" value= "{name}" class="form-control" />
        <br>
        {/ALIMENTE}
    </div>

    <input type="submit" value="Modifica" name=" modifica" class="btn btn-primary" /> 

</form>

Если я изменяю подготовить запрос, конечный результат является логическим, но редактирование происходит, я получаю это сообщение об ошибке

Сообщение: вызов участника результат функции () в логическом

1 Ответ

0 голосов
/ 14 марта 2020

Поскольку CodeIgniter не поддерживает подготовленные операторы, вы можете изменить свой код следующим образом, чтобы использовать объект PDO для запуска подготовленных операторов:

public function edit_done() {
    $name = $this->input->post("name");
    $id = $this->input->post("id");

    $query = $this->db->conn_id->prepare('update alimente set name = ? where id = ?');
    $query->execute($name, $id);

    redirect("alimente");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...