Php nos da varias opciones para poder conectarnos a mysql, son las siguientes:
- La extensión MySQL, obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0 (no usar)
- La extensión MySQLi (la que usaremos en este ejemplo)
- PDO (capa abstracta que permite realizar conexiones a varias bases de datos)
- Otras: DBA, dbx, ODBC.
ATENCIÓN: Si utilizas la función mysql_connect() para conectarte a mysql estas usando código obsoleto, intenta en la medida de lo posible actualizarte
En este ejemplo vamos a utilizar la extensión MySQLi, ahora debemos escoger si utilizamos el estilo orientado a objetos o el estilo por procedimientos, dos formas de hacer lo mismo pero con pequeñas diferencias de sintaxis.
$mysqli = new mysqli('localhost', 'mi_usuario', 'mi_contraseña', 'mi_bd'); // Estilo orientado a objetos $enlace = mysqli_connect('localhost', 'mi_usuario', 'mi_contraseña', 'mi_bd'); // Estilo por procedimientos
Por potencia y comodidad recomiendo el estilo orientado a objetos que va a ser la forma que seguiremos en este artículo.
A continuación un código de ejemplo para realizar la conexión a una base de datos mysql explicado con comentarios.
$host = 'localhost'; // La dirección de la base de datos, puede ser o un nombre de host o una dirección IP $username = 'root'; // El usuario de la base de datos $passwd = 'root'; // La contraseña del usuario $dbname = 'demo'; // El esquema predeterminado para realizar las consultas // Realizamos la conexión $conexion = new mysqli($host, $username, $passwd, $dbname); // Controlamos que la conexión no tenga errores if($conexion->connect_error) { error_log("Error de conexion a mysql: nº: $conexion->connect_errno, Error: $conexion->connect_error"); throw new ErrorException("Error de conexion a mysql: nº: $conexion->connect_errno, Error: $conexion->connect_error"); } // Especificamos el charset de la conexión, muy importante para que se vean correctamente todos los caracteres $conexion->set_charset("utf8"); // Ejecutamos una select en la base de datos $resultadoSelect = $conexion->query("SELECT * FROM usuarios"); // Recorremos las filas while ($fila = $resultadoSelect->fetch_assoc()) { var_dump($fila); // Pintamos una fila }
Comentarios recientes