Sfortunatamente, il metodo quoteInto()
è stato rimosso con l'introduzione del nuovo Zend\Db
in ZF 2.0. E non esiste un equivalente che abbia esattamente lo stesso comportamento.
In ZF2 è presente il metodo quoteValue()
. Questo metodo accetta un valore come parametro e quindi cita il valore in modo da poterlo inserire in modo sicuro in una query SQL come valore.
Tuttavia, è possibile utilizzare quoteValue()
per replicare il comportamento del metodo ZF1 quoteInto()
. Si potrebbe semplicemente prendere il codice del metodo quoteInto()
da ZF1, e applicare il metodo quoteValue()
dall'oggetto piattaforma ZF2 ad esso:
// 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;
}
}
Ci sono alcune differenze. ZF1 ha un parametro $type
, ma a causa del modo in cui ZF2 lavora con queste cose, il parametro type non ha molto senso. E c'è un parametro $platform
, perché questo metodo ha una dipendenza dalla piattaforma per il metodo quoteValue()
.
'quoteInto' richiede due parametri: la stringa e il valore sostituito ma' quoteValue' richiede solo 1 parametro. Come dovrei usarlo? –