[英]How to escape in a sql query in Zend Framework 2
我在Zend Framework 2中有一個sql查詢。它很好用,但是我忘了轉義$ sessionId,只是為了保護我的變量,所以沒人可以注入我的SQL查詢。 這是我的SQL查詢:
SELECT parent.category_name, parent.category_id ,COUNT(product.product_id) AS count,
(select count(*) from Categories parent2
where parent.category_left > parent2.category_left
and parent.category_right < parent2.category_right) as level
FROM Categories parent
LEFT OUTER JOIN Categories node
ON node.category_left BETWEEN parent.category_left AND parent.category_right
LEFT OUTER JOIN products product
ON node.category_id = product.product_category_id
WHERE product.product_shop_id = '.$sessionId.'
GROUP BY parent.category_name
ORDER by node.category_left;
我可以將它寫在Zend $ select對象中,而這個Zend會自己逃脫。 有什么辦法可以通過使用此sql查詢來對這個變量進行escpae? (我也嘗試過mysql_real_escape_string(),但是我已經讀過這個函數已經很老了才能使用它。
問候=)
大量的方法可以做到這一點。檢查這個問題: 如何防止PHP中的SQL注入?
它討論了至少4-5種不同的方法,以及它們在PHP中轉義一般查詢的好處。
需要明確的是,這里的方法並非特定於Zend Framework ..但mysql_real_escape_string也不特定於:)
另外,除非您要使用PDO(這是大多數人的建議),否則我看不到mysql_real_escape_string的任何問題。 我認為使用這種方法不會像在危險中使用的那樣陳舊-只有更多現代方法可以實現相同目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.