Thật không may, phương pháp quoteInto()
đã bị xóa với phần giới thiệu Zend\Db
mới trong ZF 2.0. Và không có tương đương mà có chính xác cùng một hành vi.
Trong ZF2, có phương thức quoteValue()
. Phương thức này lấy một giá trị làm tham số và sau đó trích dẫn giá trị để bạn có thể đặt giá trị đó vào truy vấn SQL dưới dạng giá trị một cách an toàn.
Tuy nhiên, bạn có thể sử dụng quoteValue()
để nhân rộng hành vi của phương pháp ZF1 quoteInto()
. Bạn chỉ có thể lấy mã của phương pháp quoteInto()
từ ZF1, và áp dụng các phương pháp quoteValue()
từ đối tượng nền tảng trong ZF2 với nó:
// modified quoteInto() function for ZF2
function quoteInto($text, $value, $platform, $count = null)
{
if ($count === null) {
return str_replace('?', $platform->quoteValue($value), $text);
} else {
while ($count > 0) {
if (strpos($text, '?') !== false) {
$text = substr_replace($text, $platform->quoteValue($value), strpos($text, '?'), 1);
}
--$count;
}
return $text;
}
}
Có một số khác biệt. ZF1 có thông số $type
, nhưng vì cách ZF2 hoạt động với những thứ này, tham số kiểu không có ý nghĩa nhiều. Và có tham số $platform
vì phương pháp này có sự phụ thuộc trên nền tảng cho phương thức quoteValue()
.
'quoteInto' nhận hai tham số: chuỗi và giá trị được thay thế nhưng' quoteValue' chỉ nhận 1 tham số. Tôi nên sử dụng nó như thế nào? –