English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de PHP

Tutorial avanzado de PHP

PHP & MySQL

Manual de Referencia PHP

Conexión a MySQL en PHP

En este tutorial, aprenderá a conectarse al servidor MySQL utilizando PHP.

Métodos para conectarse a MySQL mediante PHP

Para almacenar o acceder a datos en la base de datos MySQL, primero debe conectarse al servidor de bases de datos MySQL. PHP ofrece dos métodos diferentes para conectarse al servidor MySQL:MySQLi(Mejorado MySQL) yPDO(PHP Data Objects) extensión.

Aunque el nombre PDO sugiere mayor portabilidad y soporte para más de doce bases de datos diferentes, el nombre sugiere que la extensión MySQLi solo admite la base de datos MySQL. Sin embargo, la extensión MySQLi proporciona un método conveniente para conectarse al servidor de bases de datos MySQL y ejecutar consultas. Tanto PDO como MySQLi proporcionan una API orientada a objetos, pero MySQLi también ofrece una API procedimental, lo que es más fácil de entender para principiantes.

consejo:与PDO扩展相比,PHP的MySQLi扩展同时提供了速度和功能优势,因此对于特定于MySQL的项目,它可能是更好的选择。

连接到MySQL数据库服务器

在PHP中,您可以使用mysqli_connect()函数轻松地执行此操作。PHP和MySQL数据库服务器之间的所有通信都通过此连接进行。以下是使用MySQLi和PDO扩展连接到MySQL的三种基本语法:

语法:MySQLi,程序化方式

$link = mysqli_connect("hostname", "username", "password", "database");

语法:MySQLi,面向对象的方式

$mysqli = new mysqli("hostname", "username", "password", "database");

语法:PHP数据对象(PDO)方式

$pdo = new PDO("mysql:host=hostname;dbname=database", "username", "password");

上面语法中的hostname参数指定主机名(例如localhost)或MySQL服务器的IP地址,而username和password参数指定访问MySQL服务器的凭据,而数据库参数(如果提供)将指定默认MySQL 执行查询时要使用的数据库。

下面的示例演示如何使用MySQLi(程序面向对象的方式)和PDO扩展连接到MySQL数据库服务器。

ejemplo en línea

<?php
/* intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL.
servidor con configuración predeterminada (usuario sin contraseña "root") */
$link = mysqli_connect("localhost", "root", "");
 
// verificar conexión
if($link === false){
    die("error: no se puede conectar." . mysqli_connect_error());
}
 
//imprimir información del host
echo "conexión exitosa. Información del host: " . mysqli_get_host_info($link);
?>
<?php
/* intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL.
servidor con configuración predeterminada (usuario sin contraseña "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// verificar conexión
if($mysqli === false){
    die("error: no se puede conectar." . $mysqli->connect_error);
}
 
//imprimir información del host
echo "连接成功。 主机信息:" . $mysqli->host_info;
?>
<?php
/*intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL.
servidor con configuración predeterminada (usuario sin contraseña "root") */
try{
    $pdo = new PDO("mysql:host=localhost", "root", "");
    
    //establecer el modo de error de PDO en excepción
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    //imprimir información del host
    echo "连接成功。 主机信息:" . $pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch(PDOException $e){
    die("错误:无法连接。 " . $e->getMessage());
}
?>

Atención: El nombre de usuario predeterminado del servidor de bases de datos MySQL es root, sin contraseña. Sin embargo, para evitar que la base de datos sea pirateada y accedida sin autorización, debe configurar una contraseña para la cuenta MySQL.

consejo:Establecer PDO::ATTR_ERRMODE a PDO::ERRMODE_EXCEPTION le dirá a PDO que lance una excepción cuando ocurra un error en la base de datos.

cerrar conexión con el servidor de base de datos MySQL

Después de que el script se ejecute, la conexión con el servidor de base de datos MySQL se cerrará automáticamente. Pero si desea cerrarlo antes, simplemente llame a la función PHP mysqli_close().

ejemplo en línea

<?php
/*intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL.
servidor con configuración predeterminada (usuario sin contraseña "root")*/
$link = mysqli_connect("localhost", "root", "");
 
// verificar conexión
if($link === false){
    die("error: no se puede conectar." . mysqli_connect_error());
}
 
// imprimir información del host
echo "conexión exitosa. Información del host: " . mysqli_get_host_info($link);
 
// cerrar conexión
mysqli_close($link);
?>
<?php
/*intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL.
servidor con configuración predeterminada (usuario sin contraseña "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// verificar conexión
if($mysqli === false){
    die("error: no se puede conectar." . $mysqli->connect_error);
}
 
// imprimir información del host
echo "conexión exitosa. Información del host: " . $mysqli->host_info;
 
// cerrar conexión
$mysqli->close();
?>
<?php
/* intentar conectar con el servidor MySQL. Supongamos que está ejecutando MySQL.
servidor con configuración predeterminada (usuario sin contraseña "root") */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    
    //establecer el modo de error de PDO en excepción
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    //imprimir información del host
    echo "conexión exitosa. Información del host: " . $pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch(PDOException $e){
    die("error: no se puede conectar." . $e->getMessage());
}
 
//cerrar conexión
unset($pdo);
?>