簡體   English   中英

如何在Zend Framework 2中的SQL查詢中轉義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM