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クエリを使用してこの変数をエスケープする方法はありますか? (mysql_real_escape_string() も試しましたが、この関数は古すぎて使用できません。
ご挨拶 =)