Tôi có sql sau (một đơn giản hóa vấn đề thực sự):Làm cách nào để thoát khỏi sql phức tạp trong Zend Framework?
SELECT *
FROM t
WHERE myname LIKE '%{$input}%';
Làm thế nào để thoát khỏi $ đầu vào?
Tôi không thể sử dụng quoteInto (trừ khi tôi bỏ lỡ điều gì đó).
Như
$sql=$DB->quoteInto("SELECT *
FROM t
WHERE myname LIKE '%?%'",$input);
Sẽ cung cấp cho tôi
SELECT *
FROM t
WHERE myname LIKE '%'my input'%';
và
$sql=$DB->quoteInto("SELECT *
FROM t
WHERE myname LIKE ?",'%'.$input.'%');
Sẽ cung cấp cho tôi một cái gì đó trên dòng:
SELECT *
FROM t
WHERE myname LIKE '\%my input\%';
Đây là cách tốt nhất :) –
FWIW, kết quả đầu ra '% queryvalue%' bao gồm cả dấu nháy đơn. –