Clase PHP MySQL simple y fácil de usar (recomendada!)

by
on August 1, 2013
(1 minute read)

Ejecutar consultas SQL con PHP es muy fácil aunque para los que acaban de empezar puede ser un poco desesperante encontrar un código corto y simple que funcione y que devuelva algo cómodo de usar y coherente. En Internet se encuentran muchos snippets (trozos de código) que puedes copiar y pegar aunque muchos de ellos o son demasiado complicados, o funcionan mal, o son larguísimos con más de 50 lineas de código PHP.

Simple Cloud Hosting Built for Developers

Aquí os dejo la función que utilizo para proyectos pequeños en los que no necesito un framework PHP (normalmente prototipos rápidos y proyectos personales) o cuando utilizo micro-frameworks que no tienen librería de conexión a MySQL (como Lemonade). Os la dejo en una simple función aunque fácilmente se puede incorporar a una clase PHP para utilizar como método. Además, utiliza el método MySQLi que es la nueva versión que se recomienda.

Este es todo el código que necesitamos! En la primera línea iniciamos una conexión y luego creamos la función:

$c = mysqli_connect(MYSQL_SERVER, MYSQL_USER, MYSQL_PASS, MYSQL_DATABASE);

function db ($sql, $c) {
    $res = false;
	$q = ($c === null)[email protected]_query($sql):@mysqli_query($c,$sql);

	if($q) {
		if(strpos(strtolower($sql),'select') === 0) {
			$res = array();
			while($r = mysqli_fetch_assoc($q)) {
				$res[] = $r;
			}
		} else {
			$res = ($c === null)?mysqli_affected_rows():mysqli_affected_rows($c);
		}
	}
	return $res;
}

No necesitamos nada más :)

Ejemplos de uso

Como vemos más arriba, lo primero que necesitamos hacer es iniciar la conexión:

$c = mysqli_connect(MYSQL_SERVER, MYSQL_USER, MYSQL_PASS, MYSQL_DATABASE);

Y ahora podemos correr cualquier consulta SQL (recuerda añadir la $c en el segundo parámetro de la función!):

$resultado = db('SELECT * FROM tabla', $c);

Devuelve una matriz asociativa muy fácil de acceder:

echo $resultado[0]['nombre'];

Si queremos recorrer la matriz:

foreach ($resultado as $fila) {
	echo $fila['nombre'].'<br>';
}

Manejo de errores

Simple Cloud Hosting Built for Developers

Si la consulta SQL no devuelve ningún resultado o hay un error de MySQL la función devolverá un booleano falso. Es tan fácil como comprobarlo con PHP así:

if (!db('SELECT * FROM table WHERE 1 == 0') {
	echo 'Error!';
}

Foto por camknows

Looking for cool gift ideas? TrendLiker.com lists hundreds of nice items and lets you know when they go on sale on Amazon.

Did you enjoy this article?

Thank with a coffee ☕

Or help me out by clicking one of these buttons:

    
    

2 comments

Follow me for cool new products and interesting findings on graphic design, web development, marketing, startups, life and humor.


/*Twitter*/ !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); /*Facebook*/ (function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) {return;}js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=28624667607";fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk')); /*Google+*/ window.___gcfg = {lang: 'en-GB'};(function() {var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;po.src = 'https://apis.google.com/js/plusone.js';var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);})();
Airbnb 25€ discount