我有一個網站,用戶可以在其中上傳房地產屬性的圖像。
表結構:使用Zend_DB_Table增量值原始SQL
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') . '"');
問題: 我收到 「常規錯誤」 調用$圖像 - 當> getAdapter() - >使用fetchall();然而,SQL成功執行,但Zend_DB_Table拋出一個異常,不會繼續執行下一個命令。任何想法/建議,將不勝感激。
我不容易受到SQL注入攻擊,因爲這是在用戶獲取信息之前使用從腳本中獲取的值完成的。除了屬性ID和圖像ID之外,他們無法傳遞任何內容。我做了一個檢查來驗證用戶是否屬於該屬性和圖像的所有者。謝謝anywa。 – 2009-09-13 18:35:40
夠公平的。如果外部邏輯發生變化,我仍然會明確地轉義。代碼有被重用的傾向,並且您依靠授權代碼失敗,以確保不良參數永遠不會將其傳遞到數據庫。 – timdev 2009-09-13 19:15:36