Sto sviluppando un'applicazione Web utilizzando zend framework. Per le affermazioni selezionate ho usato il modo seguente.mysql_real_escape_string con Zend
Es:
public function getData($name)
{
$sql = "SELECT * from customer where Customer_Name = '$name'";
return $this->objDB->getAdapter()->fetchAll ($sql);
}
Questo funziona bene. Ma se invio il nome del cliente come: colvin's place
, La query non riesce. E so che è a causa della singola citazione.
In precedenza ho utilizzato la funzione PHP di addslashes. Ma ho visto che non è un buon modo per farlo. Questa volta ho usato la funzione PHP mysql_real_escape_string
.
Il problema si dice dopo un avviso.
Warning</b>: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: Access denied for user 'ODBC'@'localhost' (using password: NO)
Questo è a causa della funzione mysql_real_escape_string
ha bisogno di una connessione al database aperto da mysql_connect
. La mia domanda è come posso usare questo con le classi * Zend_DB *. Devo usare sempre le query di selezione personalizzate. Apprezzo i tuoi altri suggerimenti se disponibili.
Grazie
Did yo provare a utilizzare [Zend_DB_Statement] (http://framework.zend.com/manual/ it/zend.db.statement.html) –
Grazie Shiplu. Controllerò. –
Uso addslashes() e per interi Intval(). Ma usare addslashes è una cattiva pratica. – devOp