Formato para almacenamiento

Además de usar funciones de cadena para modificar el formato de las cadenas visualmente, podemos utilizar parte de estas funciones para variar el formato de cadenas para su almacenamiento en una base de datos.

Algunos caracteres pueden dar problemas al insertarse en bases de datos pues pueden interpretarse como caracteres de control. Los caracteres problemáticos son las comillas (simples o dobles), las barras invertidas y el carácter NULL. La forma de evitar que estos caracteres corrompan los datos almacenados en nuestra base de datos es "escaparlos", es decir, indicar a nuestro servidor de base de datos, por ejemplo MySQL, que se tratan de caracteres especiales y no de una secuencia de control.

Para _marcar_ estos caracteres como caracteres especiales, se agrega una barra invertida delante de ellos. Por ejemplo, las comillas dobles (") se convertirán en \" (barra invertida seguida de las comillas dobles) y la barra invertida (\) se convierte en \\ (doble barra invertida).

PHP incorpora dos funciones específicamente diseñadas para escapar (marcar) caracteres especiales. Antes de escribir cadenas en una base de datos, deberemos tratar esas cadenas con funciones que marquen esos caracteres.

string addslashes( string cad )

Añade caracteres de marcado para almacenamiento en bases de datos y evitar ataques ** SQL Injection**.

<?php
   $cadena = "¿Te apellidas O\'reilly?";
   echo addslashes($cadena);
   //¿Te apellidas O\'reilly?
?>

La función contraria, es striplashes

string stripslashes( string cad )

que elimina los caracteres de marcado introducidos en una cadena explícitamente. Por ejemplo:

<?php
   $cadena = "¿Te apellidas O\'reilly?";
   echo stripslashes($cadena);
   //¿Te apellidas O'reilly?
?>

Otro ejemplo:

$texto = 'La ruta "Principal" es D:\USBAMP<br>';
$textoEscapado = addslashes($texto);
// Imprime: La ruta \"Principal\" es D:\\USBAMP
echo $textoEscapado;
// Imprime: La ruta "Principal" es D:\USBAMP
echo stripslashes($textoEscapado);

results matching ""

    No results matching ""