Posts Tagged ‘bases de datos’

septiembre 10, 2009 0

Consultas parametrizadas en PHP. Parte I.

By in PHP

Cuando realizamos una consulta a una base de datos normalmente esta lleva algún parámetro por el que filtramos. Para ello lo que se suele hacer es algo parecido a lo siguiente:

$consulta = "SELECT nombre FROM usuarios WHERE login='".escapar($login)."'";
$resultado = ejecutarConsulta($consulta);

En ese trozo de código obtenemos el nombre de un usario sabiendo el login de este. Para ello creamos la consulta concatenando cadenas, escapamos el valor del login (con la hipotética función escapar) para prevenir ataques SQL injection y luego llamamos a una, hipotética de nuevo, función llamada ejecutarConsulta (por ejemplo mysql_query) que nos devolverá los datos de la consulta.

Lo que propongo es usar una función que nos genere la consulta a partir de una consulta parametrizada. El prototipo de esta función es el siguiente:

string prepararConsulta(string $consulta, array $parametros);

Esta función nos devolverá una cadena con la consulta ya preparada y los paáametros se los pasaremos como un array. Se podrá parametrizar la consulta de dos formas distintas, mediante parámetros sin nombre o con parámetros con nombre. Veamos las dos formas:

Parámetros sin nombre:

SELECT fields FROM table WHERE cond1=? AND cond2=? AND cond3=?

Parámetros sin nombre:

SELECT fields FROM table WHERE cond1=:val1 AND cond2=:val2 AND cond3=:val3

Si habeis usado ADODb os sonará esta forma de hacer consultas.

En la siguiente parte del artículo veremos como podemos implementar una primera versión de esta función.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , ,

agosto 29, 2009 0

Backup2Mail: creando copias de seguridad de nuestras bases de datos

By in Herramientas, PHP

Una de las cosas que hay que hacer periódicamente con nuestras bases de datos es realizar copias de seguridad, lo que nos ahorrará más de un quebradero de cabeza en caso de desastre. Una buena idea es automatizar todo el proceso. Para WordPress existe el plugin WordPress Database Backup pero si nuestra web no está basada en WordPress tenemos un problema. Para solventarlo vamos a hacer uso de un script en PHP llamado Backup2Mail.

Backup2Mail

Lo primero que tenemos que hacer es descargarnos el script de su página. Configuramos el archivo index.php con los datos que queramos:

/***************************************************
	Database settings
****************************************************/
	$db_server = 'localhost'; // Database server, usually "localhost"
 	$db_name   = '';	  // Database name, leave empty for 'all databases'
	$db_user   = '';	  // Database username
	$db_pass   = '';	  // Database password

/***************************************************
	E-mail settings
****************************************************/
 	$website = 'yoursite.com';	// Your site's domain (without www. part)
	$send_to = 'mail@yoursite.com'; // backup file will be sent to?

Subimos el archivo index.php a una carpeta en nuestro servidor, por ejemplo una llamada backup2mail. Ya tenemos instalado Backup2Mail. Para ejecutar el script habrá que hacer la siguiente llamada:

php /home/your_account/backup2mail/index.php >/dev/null 2>&1

Para finalizar. si lo deseamos, podemos hacer uso de algún demonio tipo cron para hacer que esto se ejecute cada cierto tiempo.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , , , ,