GNU/Linux >> Tutoriales Linux >  >> Linux

3 métodos para conectarse a MySQL desde PHP usando un código de ejemplo

Para aprovechar al máximo su base de datos MySQL, es importante comprender cómo conectarse desde su programa PHP personalizado a la base de datos MySQL.

Este tutorial explica los siguientes tres métodos junto con el programa PHP de ejemplo apropiado, que explicará cómo conectarse desde su PHP a la base de datos MySQL.

  • Conéctese usando la extensión mysqli (recomendado)
  • Conectar mediante PDO (recomendado)
  • Conéctese usando las funciones mysql_ heredadas tradicionales (obsoleto)

Para esto, debe instalar el paquete php-mysql.

En la distribución basada en RedHat, incluido CentOS, use yum para instalar php-mysql como se muestra a continuación.

yum install php-mysql

Dependiendo de su sistema, lo anterior instalará o actualizará las siguientes dependencias:
php
php-cli
php-common
php-pdo
php-pgsql

Una vez instalado, la página phpinfo mostrará el módulo mysql como se muestra a continuación:

Para todos los ejemplos a continuación, nos conectaremos a una base de datos MySQL que ya existe. Si es nuevo en MySQL, este es un buen lugar para comenzar:Guía para principiantes de MySQL

Nota:Todo lo que se explica aquí también funcionará con MariaDB, ya que es igual que MySQL.

1. Conéctese desde PHP usando la extensión mysqli

mysqli significa MySQL Mejorado.

Tenga en cuenta que en la mayoría de las distribuciones (por ejemplo:CentOS), php-mysqli ya forma parte del paquete php-mysql. Por lo tanto, no tiene que buscar y buscar el paquete php-mysqli. Todo lo que tiene que hacer es instalar el paquete php-mysql para que la extensión mysqli funcione en su sistema.

Cree el siguiente archivo mysqli.php en Apache DocumentRoot:

<?php
  $conn = new mysqli("localhost", "root", "mySecretDBpass", "thegeekstuff");
  
  if ($conn->connect_error) {
    die("ERROR: Unable to connect: " . $conn->connect_error);
  } 

  echo 'Connected to the database.<br>';

  $result = $conn->query("SELECT name FROM employee");

  echo "Number of rows: $result->num_rows";

  $result->close();

  $conn->close();
?>

En lo anterior:

  • mysqli:esta función iniciará una nueva conexión utilizando la extensión mysqli. Esta función tomará estos cuatro argumentos.
    1. nombre de host donde se ejecuta la base de datos MySQL
    2. Nombre de usuario de MySQL para conectarse
    3. Contraseña para el usuario mysql
    4. Base de datos MySQL para conectar.
  • función de consulta:use esto para especificar su consulta de MySQL. En este ejemplo, seleccionamos la columna de nombre de la base de datos de empleados.
  • Finalmente, estamos mostrando el número de filas seleccionadas usando la variable num_rows en el resultado. También estamos cerrando tanto el resultado como la variable de conexión como se muestra arriba.

Cuando llame al mysqli.php anterior desde su navegador, verá el siguiente resultado, que indica que PHP pudo conectarse a la base de datos MySQL y obtener datos.

Connected to the database.
Number of rows: 6

Nota:si está intentando conectarse a una base de datos MySQL remota, es posible que deba hacer esto para evitar el mensaje de error de host no permitido:Cómo permitir que el cliente MySQL se conecte al servidor MySQL remoto

2. Conéctese desde PHP MySQL PDO Extensión

PDO significa Objetos de datos de PHP.

La unidad PDO_MYSQL implementa la interfaz PDO proporcionada por PHP para conectarse desde su programa PHP a la base de datos MySQL.

En la mayoría de las distribuciones de Linux (por ejemplo:CentOS y RedHat), el paquete php-pdo ya forma parte del paquete php-mysql. Por lo tanto, no tiene que buscar y buscar el paquete php-pdo. Todo lo que tiene que hacer es instalar el paquete php-mysql para que la extensión PHP PDO_MYSQL funcione en su sistema.

Cree el siguiente archivo mysql-pdo.php en su Apache DocumentRoot:

<?php
  try {
    $conn = new PDO("mysql:host=localhost;dbname=thegeekstuff", "root", "mySecretDBpass");

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo 'Connected to the database.<br>';

    $sql = 'SELECT name FROM employee';
    
    print "Employee Name:<br>";
    foreach ($conn->query($sql) as $row) {
        print $row['name'] . "<br>";
    }
    $conn = null;

  }
  catch(PDOException $err) {
    echo "ERROR: Unable to connect: " . $err->getMessage();
  }
?>

En lo anterior:

  • nuevo PDO:esto creará un nuevo objeto PDO que tomará los siguientes tres argumentos:
    1. cadena de conexión mysql:tendrá el formato "mysql:host=$hostname;dbname=$dbname". En el ejemplo anterior, la base de datos se ejecuta en localhost y nos conectamos a la base de datos geekstuff.
    2. Nombre de usuario de MySQL para conectarse
    3. Contraseña para el usuario mysql
  • Variable $sql:crea la consulta sql que deseas ejecutar. En este ejemplo, estamos seleccionando la columna de nombre de la tabla de empleados.
  • query($sql):aquí estamos ejecutando la consulta sql que acabamos de crear.
  • foreach:aquí, estamos recorriendo el resultado del comando de consulta anterior y almacenándolo en la variable $row, y luego lo estamos mostrando usando el comando de impresión.
  • En MySQL PDO, para cerrar la conexión, simplemente establezca la variable $conn en valor nulo.

Cuando llame al mysqli.php anterior desde su navegador, verá el siguiente resultado, que indica que PHP pudo conectarse a la base de datos MySQL y obtener datos.

Connected to the database.
Employee Name:
Thomas
Jason
Mayla
Nisha
Randy
Ritu

3. Conéctese desde PHP utilizando funciones mysql_ heredadas (obsoleto)

Use este método solo si está usando una versión anterior de PHP y no puede actualizarla a la nueva versión por algún motivo.

Se recomienda que utilice el Método n.° 2 y el Método n.° 3 que se muestran arriba en lugar de este método. He incluido este método solo como referencia y no como una recomendación de uso.

Esta extensión en particular quedó obsoleta a partir de la versión PHP 5.5. Pero a partir de la versión PHP 7.0, esto ni siquiera funcionará, ya que fue eliminado.

A partir de la versión PHP 5.5, cuando utilice estas funciones, generará el error E_DEPRECATED.

Cree el siguiente archivo mysql-legacy.php en Apache DocumentRoot:

<?php
$conn = mysql_connect('localhost', 'root', 'mySecretDBpass');
mysql_select_db("thegeekstuff");
if (!$conn) {
die('ERROR: Unable to connect: ' . mysql_error());
}

echo 'Connected to the database.<br>';

$result = mysql_query('SELECT name FROM employee');

$row = mysql_fetch_row($result);
echo "Employee 1: ", $row[0], "<br>\n";

mysql_close($conn);
?>

En lo anterior:

  • La función mysql_connect toma tres argumentos:1) nombre de host donde se ejecuta la base de datos MySQL 2) nombre de usuario de MySQL para conectarse 3) contraseña para el usuario de mysql. Aquí se conecta a la base de datos MySQL que se ejecuta en el servidor local utilizando el nombre de usuario root y su contraseña.
  • función mysql_select_db:como sugiere el nombre, seleccionará la base de datos a la que desea conectarse. Esto es equivalente al comando "usar". En este ejemplo, nos estamos conectando a la base de datos thegeekstuff.
  • función mysql_query:use esto para especificar su consulta MySQL. En este ejemplo, seleccionamos la columna de nombre de la base de datos de empleados.
  • mysql_fetch_row:use esta función para obtener las filas de la consulta SQL que acabamos de crear.
  • Finalmente cierre la conexión usando el comando mysql_close como se muestra arriba.

Cuando llame al mysql-legacy.php anterior desde su navegador, verá el siguiente resultado, que indica que PHP pudo conectarse a la base de datos MySQL y obtener datos.

Connected to the database.
Employee 1: Thomas

Linux
  1. Conéctese a una base de datos MySQL de forma remota

  2. Conéctese a Linux desde Mac OS X usando Terminal

  3. Conéctese a Linux desde Windows usando PuTTY

  4. ¿Cómo puedo ejecutar código PHP desde la línea de comandos?

  5. Base de datos MySql desde una memoria USB

Cómo conectarse a MySQL usando PHP

Cómo conectarse a MySQL desde la línea de comandos de Windows

Cómo insertar datos en la base de datos MySQL usando PHP en XAMPP

Cree una base de datos y una tabla MySQL usando PHP en XAMPP

Cómo implementar una aplicación PHP con Nginx y MySQL usando Docker y Docker Compose

Cómo conectarse a MySQL usando PHP