Tengo creadas unas funciones en un include que permiten manejar la base de datos sin problemas, y que reescribiéndolo con otras sentencias PHP permitirían cambiar la base de datos sin cambiar el código de nuestra aplicación.
La mas interesante es el query, ya que permite usar querys parametrizados por tipos de datos y además se encarga de escaparnos las variables correctamente según la configuración de nuestro servidor.
Para el tema de los tipos de datos, podéis mirar el manual sprintf de PHP. Básicamente se usan %s para strings y %d para enteros.
Así, para cargar unos datos, sería:
El solito se encarga de escapar correctamente los datos para que no nos de error.
Saludos.
La mas interesante es el query, ya que permite usar querys parametrizados por tipos de datos y además se encarga de escaparnos las variables correctamente según la configuración de nuestro servidor.
Para el tema de los tipos de datos, podéis mirar el manual sprintf de PHP. Básicamente se usan %s para strings y %d para enteros.
Así, para cargar unos datos, sería:
ddbb_query("INSERT INTO `test` (`Nombre`, `Edad`) VALUES ('%s', '%d')", $_POST["nombre"], $_POST["edad"]);El solito se encarga de escapar correctamente los datos para que no nos de error.
<?php
if( !isset($conectado) ) {
/**
* Config. de la BBDD, conexion a MySQL.
* Rellenar estas variables con los datos del servidor:
*/
$config["DB_HOST"] = "localhost";
$config["DB_LOGIN"] = "user";
$config["DB_PASSWORD"] = "pass";
$config["DB_NAME"] = "DB_NAME";
// FIN CONFIGURACION
$ddbb["db"] = false;
function ddbb_query($q) {
global $ddbb;
$n = func_num_args();
if( $n > 1 ) {
$a = func_get_args();
for( $i = 1; $i < $n; $i++ ) {
if(get_magic_quotes_gpc()) $a[$i] = stripslashes($a[$i]);
if(!is_numeric($a[$i])) $a[$i] = mysqli_real_escape_string( $ddbb["db"], stripslashes($a[$i]));
}
$c = call_user_func_array('sprintf', $a);
if( isset($ddbb) && isset($ddbb["debug"]) && $ddbb["debug"] ) echo "\n\n";
return mysqli_query( $ddbb["db"], $c);
}
if( isset($ddbb["debug"]) && $ddbb["debug"] ) echo "\n\n";
return mysqli_query( $ddbb["db"], $q);
}
function ddbb_last_id() {
global $ddbb;
return mysqli_insert_id($ddbb["db"]);
}
function ddbb_num_rows(&$r) {
return mysqli_num_rows($r);
}
function ddbb_fetch_array(&$r, $i) {
return mysqli_fetch_array($r);
}
function ddbb_fetch_row(&$r, $i) {
return mysqli_fetch_row($r);
}
function ddbb_bool($b) {
return ( $b );
}
if( !( $ddbb["db"] = mysqli_connect($config["DB_HOST"], $config["DB_LOGIN"], $config["DB_PASSWORD"], $config["DB_NAME"] ) ) ) {
echo "<p align=\"center\">[b]Error, no he podido conectar a la base de datos.[/b]</p>";
}
else {
// Para usar UTF8. Usar solo si se sabe lo que se hace:
// mysqli_set_charset( $ddbb["db"], 'utf8');
$conectado = true;
}
} // FINSaludos.