如何在mysql数据库中存储PHP imagecopymerge函数创建的图像
我试图将一系列图像叠加在一起,并将结果保存到blob字段中的mysql数据库中。我使用codeigniter的“活动记录”语法来实现这一点。我遇到以下错误:如何在mysql数据库中存储PHP imagecopymerge函数创建的图像,php,mysql,codeigniter,blob,Php,Mysql,Codeigniter,Blob,我试图将一系列图像叠加在一起,并将结果保存到blob字段中的mysql数据库中。我使用codeigniter的“活动记录”语法来实现这一点。我遇到以下错误: Error Number: 1064</p><p>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
Error Number: 1064</p><p>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id #48 WHERE `id` = '5'' at line 1
UPDATE `users_thumbnails` SET `thumbnail` = Resource id #48 WHERE `id` = '5'
使用
else$base在您将其传递给查询时不会自动转换为图像,它只是转换为资源id#48
编辑:捕获内容使用
else$base在您将其传递给查询时不会自动转换为图像,它只是转换为资源id#48
编辑:捕获内容您应该使用imagejpg或其他工具生成图像,否则$base只是一个GD资源,实际上是一个指针,而不是图像的内容。您可以添加正在执行的完整SQL语句吗?id#48看起来可疑。@Colin,我使用codeigniter的活动记录方法生成依赖于数据库的SQL,对MySQL执行的完整SQL语句是您在错误消息中看到的,您应该使用imagejpg或其他东西生成图像,否则$base只是一个GD资源,实际上是一个指针,不是映像的内容您可以添加正在执行的完整SQL语句吗?id#48看起来可疑。@科林,我正在使用codeigniter的活动记录方法生成依赖数据库的SQL,对MySQL执行的完整SQL语句如错误消息中所示。imagejpeg()的问题是它返回布尔值并将图像导出到浏览器。imagejpeg()的问题它返回布尔值并将图像导出到浏览器。
$base = imagecreatefromjpeg('application/assets/images/vel1_bg.jpg');
foreach($array as $key => $value){
$item = imagecreatefrompng('application/assets/images/items/item' . $value[0] . '.png');
list($width, $height, $type, $attr) = getimagesize('application/assets/images/items/item'. $value[0] . '.png');
imagecopymerge($base,
$item,
$value[1],
$value[2],
0,
0,
$width,
$height,
100);
//imagedestroy($item);
}
$data = array('thumbnail' => $base);
$this->db->where('fbid', $this->session->userdata('id'));
$this->db->update('users_thumbnails', $data);
...
ob_start();
imagepng($base);
$baseimg = ob_get_clean();
$data = array('thumbnail' => $baseimg);
...