PDO bindParam - 在所有中插入的最后一个值

时间:2015-01-11 12:26:51

标签: php pdo

我有这个代码插入DB:

    public function insert($table,$parameters=array()){
    $param="";
    $val=array();
    $insert= str_replace(':', '', array_keys($parameters)); //remove :
    //Build Query
    $query="INSERT INTO {$this->dbinfo["prefix"]}$table";
    if(is_array($insert)){

        $query.=' (`'.implode("`,`",$insert).'`) VALUES (:'.implode(', :',$insert).')';

        $result = $this->db->prepare($query);

        foreach($parameters as $key=>$param) {
          $result->bindParam($key, $param);
        }
    }

    $result->execute();
    if($err=$this->error_message($this->db->errorInfo())) {
        $this->query=strtr($query,$parameters);
        $this->db_error=$err;
        exit;
    }
    ++$this->num_queries;
    $last_id = FALSE;
    $last_id = $this->db->lastInsertId();
return $last_id;        
}

错误处理:

private function error_message($error){
    if(!empty($error[2])){
        return $error[2];
    }
    return FALSE;
}

调用示例可能如下所示:

$this->db->insert("log_url",array(":name"=>"url",":urlid"=>15,":type"=>0));

上面的例子插入数据库中的行填充了最后一个值,在本例中为0.当我删除该类型时,它将全部填入15.等等... 插入函数中的某处是错误的,但我找不到它。

任何信息都有帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

回答:

缺少执行

$result->execute();