Este tutorial será muy diferente a los que has visto con respecto a conectarse a una base de datos MySQL, en primer lugar porque usaremos Mysqli que es la extensión de mysql clásico (permite el uso de objetos y está optimizado para MySql 4.1.3 o superior además que los mismos desarrolladores de PHP piden usarlo sobre la versión estándar.
¿Qué es la extensión mysqli de PHP?
La extensión mysqli, o como a veces se le conoce, la extensión de MySQL mejorada, se desarrolló para aprovechar las nuevas funcionalidades encontradas en los sistemas MySQL con versión 4.1.3 o posterior. La extensión mysqli viene incluida en las versiones PHP 5 y posteriores.
La extensión mysqli contiene numerosos beneficios, siendo estas las mejoras principales respecto a la extensión mysql:
- Interfaz orientada a objetos
- Soporte para Declaraciones Preparadas
- Soporte para Múltiples Declaraciones
- Soporte para Transacciones
- Mejoradas las opciones de depuración
- Soporte para servidor empotrado
Teniendo esa información previa pasaremos al código fuente para conectarnos a una base de datos y obtener los registros, el código está explicado línea por línea
<?php $server = 'localhost'; //servidor $username = 'xxxxxx'; //usuario de la base de datos $password = 'yyyyyy'; //password del usuario de la base de datos $database = 'mibasedatos'; //nombre de la base de datos $conexion = new mysqli(); @$conexion->connect($server, $username, $password, $database); /* Las 2 lineas de arriba se pueden resumir en: $conexion = @new mysqli($server, $username, $password, $database); Recuerden que el @ adelante de las funciones significa que no generará error o warnings Tema: http://www.elcodigofuente.com/uso-del-arroba-funciones-php-585/ */ if ($conexion->connect_error) //verificamos si hubo un error al conectar, recuerden que pusimos el @ para evitarlo { die('Error de conexión: ' . $conexion->connect_error); //si hay un error termina la aplicación y mostramos el error } $sql="SELECT * from mitabla limit 10"; //traemos 10 registros $result = $conexion->query($sql); //usamos la conexión para dar un resultado a la variable if ($result->num_rows > 0) //si la variable tiene al menos 1 fila entonces seguimos con el código { while ($row = $result->fetch_array()) //MYSQLI_ASSOC= El arreglo como siempre, es decir [campo1]->valor, [campo2]->valor //MYSQLI_NUM= Como indice [0]-> Valor de campo 1, [0]->valor de campo2 //MYSQLI_BOTH= por defecto, trae ambos, es decir que si la tabla es de 2 campos, tendremos una array de 4 posiciones // [0] -> Valor campo1, [campo1] -> Valor de campo1, [1] -> Valor de campo2, [campo2]-> Valor de Campo1 { echo "<pre>"; print_r($row); //imprimimos el contenido de array echo "</pre>"; echo "------------"; } } else { echo "No hubo resultados"; } $conexion->close(); //cerramos la conexión ?>
Como ven todo está orientado a Objetos y no se usa las funciones de mysql_FUNCION directamente sino a través de una variable Objeto.
Buenas noches,
loque pasa es que cuando trato de usar el objeto de la clase varias veces es decir tirar 2 querys
solo me funciona el primero y el segudo no
sale el error
Fatal error: Call to a member function fetch_array() on boolean in D:\xampp\htdocs\levelservice\dbManager.class.php on line 48
Por el error que tienes, me parece que estas redifiniendo tu variable resultado como BOOLEAN; o tambien puede que te devuelva 0 resultados (por tanto es false)
Excelente ayuda..!
Estoy desarrollando una web y necesito agregar codigo fuente como se muestra en esta página con todo y sus respectivas sintaxis.. como se llama eso?