【发布时间】:2011-09-14 01:53:12
【问题描述】:
我正在尝试将一系列图像叠加在一起,并将结果保存到 mysql 数据库中的 blob 字段中。我正在使用 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 'id #48 WHERE `id` = '5'' at line 1
UPDATE `users_thumbnails` SET `thumbnail` = Resource id #48 WHERE `id` = '5'
谁能解释我做错了什么?谢谢!
$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);
【问题讨论】:
-
你应该使用imagejpg或其他东西来生成图像,否则$base只是一个GD资源,它实际上是一个指针,而不是图像的内容
-
能否添加正在执行的完整 SQL 语句? id #48 看起来很可疑。
-
@Colin,我正在使用 codeigniter 的活动记录方法来生成依赖于数据库的 SQL,针对 MySQL 执行的完整 SQL 语句就是您在错误消息中看到的内容
标签: php mysql codeigniter blob