Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter调用未定义的方法prepare_Php_Database_Forms_Codeigniter_Frameworks - Fatal编程技术网

Php CodeIgniter调用未定义的方法prepare

Php CodeIgniter调用未定义的方法prepare,php,database,forms,codeigniter,frameworks,Php,Database,Forms,Codeigniter,Frameworks,我对CI框架非常陌生。我正在做一个项目,在我尝试用表单编辑数据库中的一行之前,一切都很顺利。我得到这个错误 消息:调用未定义的方法CI_DB_mysqli_driver::prepare() 这是我控制器中的代码 public function edit($id) { $alimente = $this->db->query('select alimente.id, alimente.name FROM alimente WHERE id = "' . $id . '"

我对CI框架非常陌生。我正在做一个项目,在我尝试用表单编辑数据库中的一行之前,一切都很顺利。我得到这个错误

消息:调用未定义的方法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");
这是我的视图文件

<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>

{ALIMENTE}
身份证赡养费
营养素

{/ALIMENTE}

如果我更改prepare to query,则最终结果是布尔值,但发生了编辑,我会收到此错误消息


消息:对布尔值上的成员函数result()的调用

由于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);
重定向(“alimente”);
这有帮助吗?