viernes, 14 de noviembre de 2014

[Funciones Comunes] PHP Y MySQL

Buenas, como no mostre en las partes de PHP las funciones de MySQL  para poder utilizarlo en conjunto, mostrare algo basico sobre como trabaja cada funcion, ya que como ya se hicieron varias partes de MySQL aqui en el blog:

Minitutoriales MySQL:

1.- http://arthusu.blogspot.mx/2013/03/mysql-minitutorial-parte-1.html
2.- http://arthusu.blogspot.mx/2013/03/mysql-minitutorial-parte-2.html
3.- http://arthusu.blogspot.mx/2013/03/mysql-minitutorial-parte-3.html
4.- http://arthusu.blogspot.mx/2013/03/mysql-minitutorial-parte-4.html
5.- http://arthusu.blogspot.mx/2013/05/mysql-minitutorial-parte-5.html



Me pasare solo a las funciones... Sin nada mas que decir comencemos.


Conectar a una base de datos

Para conectar a una base de datos utilizamos la funcion:

mysqli_connect(host,usuario,contraseña,nombre_basedatos);

La opcion nombre_basedatos es opcional y en lugar de indicar el nombre de la base de datos ahi podemos utilizar la funcion:

mysqli_select_db(nombre_basedatos);

Establecer un conjunto de caracteres


mysqli_set_charset($con,'utf8');

En este caso usamos la conexion, $con y establecemos un conjunto de caracteres utf8, la conexion estaria de la siguiente manera:

$con = mysqli_connect(host,usuario,contraseña,nombre_basedatos);
 


Puedes ver una lista de cotejamiento en la cual se indica los caracteres a utilizar, esto es util cuando usas algunos caracteres latinos, ya sea ñ o algun acento, "pon atención" por ejemplo lleva acento.


Ejecutar consultas

Para ejecutar consultas podemos utilizar la funcion:

$r = mysqli_query($con,$q);

- donde $r es una variable donde guardamos el resultado de la ejecucion de la consulta
- $q es la consulta, por ejemplo puede ser: $q = "SELECT * FROM tabla"
- $con es la conexion  
- con mysqli_query ejecutamos la consulta, esta devuelve falso en caso de error o true y un objeto de result en caso de que sea verdad.

Mostrar error en consulta

En caso de tener algun error en la consulta, podemos utilizar la funcion:

mysqli_error($con);

Para ello podriamos hacer un condicional o simplemente podemos matar el script en caso de error:

$r = mysqli_query($con,$q) or die(mysqli_error($con));

Cerrar la conexion a la base de datos

Para cerrar la conexion a la base de datos utilizamos la funcion:

mysqli_close($con);

- donde $con es la conexion


Devolver resultados de una consulta

Para devolver una consulta (como un array) podemos usar la funcion:

mysqli_fetch_array(resultadodemysqliquery,opciones);

donde resultadodemysqliquery es el objeto devuelto por la misma ejecucion de la consulta correctametne

- donde opciones puede ser MYSQLI_ASSOC (para devolver un array - como asociativo, referirse a el con los nombres de las columnas) o MYSQLI_NUM (para referirse a las columnas con los numeros 1,2,3,4, etc)


$filas= mysqli_fetch_array($r,MYSQLI_ASSOC);
echo $filas['ejemplo']; // devuelve ejemplo1

Como vez haciendo referencia a la columna nos devolvera el ultimo resultado, pero si queremos todos los resultados tendremos que recorrerlos utilizando bucles:

while($filas = mysqli_fetch_array($r)) { // aca hacemos algo }

while($filas = mysqli_fetch_array($r)) {
    echo $filas['ejemplo'] .'<br>';
}



Este ultimo devolveria algo como:

ejemplo1
ejemplo2
ejemplo3
ejemplo4

y asi sucesivamente dependiendo de las filas de la columna a la que nos refiramos...

Liberar memoria asociada a un resultado

Es muy comun, despues de haber realizado un retorno de resultados liberar memoria del mismo resultado utilizando la funcion:

mysqli_free_result($r);

- donde $r es la variable del resultado

Escapar caracteres especiales en MySQL

Esto es muy usado para mitigar ataques de Inyeccion SQL, los cuales escapa los siguientes caracteres:
NULL (ASCII 0), \n, \r, \, ', ", y Control-Z 

Digamos que por ejemplo, tenemos un campo para insertar a una base de datos como es:

$_POST['micampo'];

podriamos escapar ese campo utilizando la funcion:

mysqli_real_escape_string($con,losdatosaqui);

- donde $con es la conexion
- losdatosaqui es por ejemplo $_POST['micampo'];

$campo = mysqli_real_escape_string($con,strip_tags($_POST['micampo']));

Contar los registros devueltos

Para contar el numero de filas devueltas podemos utilizar la funcion:

mysqli_num_rows($r);

- donde $r es el resultado de la ejecucion de la consulta

En muchos casos es utilizada, como por ejemplo en algun inicio de sesion, al momento de saber si el login es correcto podemos hacer un condicional para saber si esa consulta a retornado alguna fila:

$q = "SELECT * FROM usuarios";
$r = mysqli_query($con,$q);
if(mysqli_num_rows($r) > 0){ // devolvio alguna fila }

Filas afectadas por consultas como UPDATE, DELETE o INSERT


Muchas veces queremos saber si nuestra consulta (las que se mencionan en el titulo) ha sido efectuada correctamente para ello es comun utilizar la funcion:

mysqli_affected_rows($con);

La cual retorna verdadero en caso de que nuestra consulta se haya realizado correctamente o FALSO en caso contrario.


Hasta aqui termino este pequeño y corto tutorial de referencia de funciones de PHP para MySQL muy comunmente se usan, y para ver sobre como realizar consultas podemos ir a los minitutoriales de MySQL, este tutorial de referencia es parte de los tutoriales de PHP.

No hay comentarios:

Publicar un comentario