我正在使用此代码...
$sql = "INSERT INTO images (imgname,imgtype,imgwidth,imgheight,imgdata,imgthumb,status) VALUES (?,?,?,?,?,?,?)";
$stmt = $this->db->prepare($sql);
$stmt->bindParam(1, $name, PDO::PARAM_STR);
$stmt->bindParam(2, $type, PDO::PARAM_STR);
$stmt->bindParam(3, $width, PDO::PARAM_INT);
$stmt->bindParam(4, $height, PDO::PARAM_INT);
$stmt->bindParam(5, file_get_contents($url), PDO::PARAM_LOB);
$stmt->bindParam(6, file_get_contents($thumburl), PDO::PARAM_LOB);
$stmt->bindParam(7, '0', PDO::PARAM_INT);
$stmt->execute();
但我收到错误:
消息:调用未定义的方法CI_DB_pdo_mysql_driver :: prepare()
在CodeIgniter 3.0中是否还有其他方法可以使用PDO插入blob?其他一切似乎与数据库助手一起正常工作。
答案 0 :(得分:3)
找到它。正如hjpotter92所说,$ this-> db实际上不是PDO对象。但是如果使用conn_id PDO指针,CodeIgniter会将函数传递给PDO。我换了:
$this->db->prepare($sql);
带
$this->db->conn_id->prepare($sql);
现在一切正常。