2009-05-01 15 views
6

estoy escapando todos los parámetros de cadena que recibo de un formulario php como esta:mysql_real_escape_string() elimina por completo la cadena

$usr_name = mysql_real_escape_string($_REQUEST['usr_name']); 

para evitar algunos problemas con la inyección de SQL. Pero cuando regreso de la función, termino sin nada.

También me siguen dando esta advertencia raro en mi registro de PHP:

PHP Warning: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: A link to the server could not be established in /hermes/bosweb/web279/b2798/ipw.bankingforms/public_html/formAckResponse_controller.php on line 39 

El anfitrión utiliza: Versión PHP 4.4.7

Respuesta

17

De PHP.net:

Nota: Un MySQL se requiere conexión antes de usar mysql_real_escape_string() de lo contrario un error de el nivel E_WARNING es generado y se devuelve FALSE. Si link_identifier no está definido, se utiliza la última conexión MySQL de .

En otras palabras, tendrá necesaria para conectar con la base de datos MySQL a través mysql_connect()mysql_pconnect() o antes de poder utilizar esta función.

+0

He sabido hacer esto, pero nunca supe por qué, exactamente. Funciona la función en el servidor de la base de datos? ¿O es esto simplemente una limitación de API? – ryandenki

+2

Se ejecuta en el lado del servidor, porque el escape de MySQL depende del juego de caracteres que usa actualmente el servidor. – hbw

+0

gracias, eso es bueno saberlo. – ryandenki

Cuestiones relacionadas