我試圖將一系列圖像疊加在一起,並將結果保存到一個blob字段中的mysql數據庫。我使用codeigniter的'主動記錄'語法來做到這一點。我遇到了以下錯誤:如何在PHP數據庫中存儲由PHP imagecopymerge函數創建的圖像
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資源,它實際上是一個指針,而不是圖像的內容 – venimus 2011-06-13 16:47:47
你能添加正在執行的完整SQL語句? ID#48看起來有嫌疑。 – Colin 2011-06-13 16:48:17
@Colin,我使用Codeigniter的活動記錄方法生成數據庫相關的SQL,對MySQL執行的完整SQL語句是您在錯誤消息 – 2011-06-13 16:53:00