PDO - 无效的选择查询

时间:2014-08-14 19:20:32

标签: php image mysqli blob

我正在尝试使用USERCAKE2.0通过PDO保留和检索图像。

我在以下方法中收到无效的查询错误。

确切错误是:

  

PHP致命错误:在第51行的非对象上调用成员函数prepare()

转换为方法get_cert'准​​备语句。

public function get_cert($certificate_number,$issue_date){
    global $mysqli,$db_table_prefix;
    $result = array();
    $stmt = $mysqli->prepare("select * from ".$db_table_prefix."certs where cert_num=? and issue_date=?");
    $stmt->bind_param('ss',$certificate_number,$issue_date);
    $stmt->execute();
    $stmt->store_result();
    $stmt->setFetchMode(PDO::FETCH_ASSOC);
    $result=$stmt->fetch();
    return $result;
}

同一个表的插入查询是:

public function persist_cert(){
        global $mysqli,$db_table_prefix;
        $stmt = $mysqli->prepare('insert into '.$db_table_prefix.'certs (cert_num,certificate,access_url,issue_date) values (?,?,?,?)');
        $null = NULL;
        $stmt->bind_param('sbss',$this->cert_num,$null,$this->access_url,$this->issue_date);
        $stmt->send_long_data(2,$this->certificate);
        $this->id = $stmt->execute();
        return empty($this->id);
    }

表结构是:

$certificate_sql = "CREATE TABLE IF NOT EXISTS `".$db_table_prefix."certs` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `cert_num` varchar(250) NOT NULL,
    `certificate` blob NOT NULL,
    `access_url` varchar(200) NOT NULL,
    `issue_date` date NOT NULL,
    PRIMARY KEY (`id`),
        UNIQUE KEY (`cert_num`,`issue_date`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    ";

NB - $ db_table_prefix和$ mysqli是usercake 2.0中的预定义常量。

请告诉我上面的代码有什么问题。为什么我收到错误?

0 个答案:

没有答案