0

我有一个网站,用户可以在其中上传房地产图片。
表结构:

image_id
property_id
userid
filename
thumbfilename
display_order
timestamp

场景:当用户上传多张图片时,他/她应该能够从他们上传的图片中为指定的属性设置主照片。

编码:

$sql = 'UPDATE property_images SET display_order = display_order + 1 WHERE property_id = "' . $this->_request->getParam('propertyid') . '"';
$images->getAdapter()->fetchAll($sql);
$images->update(array("display_order" => 1), 'image_id = "' . $this->_request->getParam('imageid') . '"');

问题:调用 $images->getAdapter()->fetchAll(); 时收到“一般错误”;然而,SQL 成功执行,但 Zend_DB_Table 抛出异常并且不会继续执行下一个命令。任何想法/建议将不胜感激。

4

2 回答 2

0

1)首先,认识到您需要修复您的代码,以便您逃避用户输入。您目前非常容易受到 SQL 注入的攻击。

2) 为什么要将 UPDATE 查询传递给 fetchAll()?

3)看Zend_Db_Expr

于 2009-09-13T18:18:53.827 回答
0

没关系,

解决方案:

$sql = 'UPDATE property_imagesSET display_order = display_order + 1 WHERE property_id= "1004" AND display_order < 3; $images->getAdapter()->query($sql); $images->update(array("display_order" => 1), ' image_id= "2003"');

在将显示顺序为 1 和 2 的图像分别设置为 2 和 3 之后,这将抓取第三张图像并将其设置为 1。

于 2009-09-13T18:33:02.173 回答