sql >> Base de Datos >  >> RDS >> Mysql

Cómo conectar PHP a MySQL

¿Quieres aprender a conectar PHP a MySQL y realizar diferentes tipos de operaciones de base de datos? En este artículo, haremos precisamente eso:discutiremos la conectividad de la base de datos MySQL en PHP.

PHP proporciona diferentes formas de conectar PHP a un servidor de base de datos MySQL. Hasta PHP 5.5, una de las formas más populares era con la extensión MySQL:proporcionaba una forma de "procedimiento" para conectarse al servidor MySQL. Sin embargo, esta extensión está obsoleta a partir de PHP 5.5, por lo que no vamos a discutir eso.

Actualmente, sus dos opciones son PDO y MySQLi.

La extensión PDO (PHP Data Objects) admite diferentes tipos de servidores de bases de datos subyacentes junto con el servidor MySQL. Y, por lo tanto, es portátil en caso de que decida cambiar el servidor de la base de datos subyacente en cualquier momento en el futuro.

Por otro lado, la extensión MySQLi es específica del servidor MySQL y proporciona una mejor velocidad y rendimiento. La extensión MySQLi también puede ser un poco más simple de entender al principio, ya que le permite escribir consultas SQL directamente. Si ha trabajado anteriormente con bases de datos SQL, esto le resultará muy familiar. La extensión PDO, sin embargo, crea un mapeo poderoso desde la base de datos SQL a su código PHP y le permite realizar muchas operaciones de base de datos sin necesidad de conocer los detalles de SQL o la base de datos. A la larga y para proyectos más grandes, esto puede ahorrar mucho esfuerzo de codificación y depuración.

En esta publicación, usaré la extensión MySQLi. Pero puedes aprender más sobre la extensión PDO aquí en Envato Tuts+.

  • PHPCree rápidamente una interfaz PHP CRUD con la herramienta generadora avanzada de CRUD de PDOSajal Soni

Cubriremos los siguientes temas en este artículo:

  • creando una conexión MySQL
  • insertar, actualizar y eliminar registros
  • recuperación de registros

Los mejores scripts de base de datos PHP en CodeCanyon

En esta publicación, le mostraré cómo hacer una conexión completa a una base de datos MySQL desde PHP. Esta es una habilidad importante que debe tener, pero si desea ahorrar tiempo en su próximo proyecto, es posible que desee actualizar a un script de base de datos profesional. Esto ahorrará tiempo y facilitará su trabajo.

Explore los mejores y más útiles scripts de base de datos PHP jamás creados en CodeCanyon. Con un pago único de bajo costo, puede comprar estos temas de WordPress de alta calidad y mejorar la experiencia de su sitio web para usted y sus visitantes.

Estos son algunos de los mejores scripts de base de datos PHP disponibles en CodeCanyon para 2020.

  • PHPComparación de capas de abstracción de base de datos PHP y complementos CRUD Sajal Soni

Crear una conexión MySQL

En esta sección, le mostraré cómo puede conectarse al servidor MySQL desde su script PHP y crear un objeto de conexión. Más adelante, este objeto de conexión se utilizará para ejecutar consultas, obtener resultados y manipular los registros de la base de datos. Como comentamos anteriormente, vamos a utilizar la extensión PHP MySQLi para este artículo.

La extensión MySQLi proporciona dos formas diferentes de realizar operaciones de base de datos. Puede usarlo de forma orientada a objetos o de forma procedimental, pero como este tutorial está dirigido a principiantes, me quedaré con la forma procedimental. Si está interesado en ver algunos fragmentos orientados a objetos, puede hacerme un ping en la sección de comentarios a continuación y estaré encantado de proporcionárselos.

Para comenzar, continúa y crea el db_connect.php archivo bajo la raíz de su documento con los siguientes contenidos.

<?php
$mysqli_link = mysqli_connect("{HOST_NAME}", "{DATABASE_USERNAME}", "{DATABASE_PASSWORD}", "{DATABASE_NAME}");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Tenga en cuenta que he usado marcadores de posición en mysqli_connect función:debe reemplazarlos con valores reales.

Repasemos cada marcador de posición para ver qué significa.

  • {HOST_NAME} :Esto representa el nombre de host o la dirección IP de su servidor MySQL. Si ha instalado el servidor MySQL en el mismo sistema junto con PHP, debe usar localhost o 127.0.0.1 . Por otro lado, si está utilizando un servidor MySQL alojado externamente, puede utilizar el nombre de host o la dirección IP correspondiente.
  • {DATABASE_USERNAME} :Esto representa el nombre de usuario de su usuario de MySQL. Básicamente, este es el nombre de usuario que utiliza para conectarse a su servidor MySQL.
  • {DATABASE_PASSWORD} :Esto representa la contraseña de su usuario de MySQL. Nuevamente, esta es la contraseña que usa para conectarse a su servidor MySQL junto con el nombre de usuario de MySQL.
  • {DATABASE_NAME} :Este es el nombre de la base de datos MySQL a la que desea conectarse. Una vez que se crea la conexión, consultará esta base de datos para realizar más operaciones.

Continúe y reemplace estos marcadores de posición con valores reales. En mi caso, he instalado el servidor MySQL localmente y tengo un usuario de MySQL con tutsplus-demo-user como nombre de usuario de MySQL y tutsplus-demo-password como la contraseña de MySQL. Y con eso, el ejemplo anterior se ve así:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Si ejecuta este ejemplo, debería crear un enlace de conexión a la base de datos y asignarlo a $mysqli_link variable, que usaremos más adelante para realizar diferentes tipos de operaciones de base de datos.

Por otro lado, si hay algún problema para configurar la conexión, el  mysqli_connect_errno la función devolverá un código de error y el mysqli_connect_error La función mostrará el error real. En el ejemplo anterior, lo hemos usado con fines de depuración.

Ahora, tenemos una conexión exitosa con el servidor MySQL y veremos cómo usarlo para realizar diferentes tipos de consultas a partir de la siguiente sección.

Cómo insertar registros

En la sección anterior, discutimos cómo usar mysqli_connect función para configurar una conexión de base de datos con el servidor MySQL. En esta sección, continuaremos y discutiremos cómo usar el objeto de conexión para realizar INSERT consultas.

Si desea seguir los ejemplos discutidos en este artículo, deberá crear la siguiente tabla MySQL en su base de datos. Es la tabla que vamos a usar en todos los ejemplos de ahora en adelante.

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `last_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Continúe y cree la tabla MySQL anterior utilizando el software phpMyAdmin o la herramienta de línea de comandos.

A continuación, creemos el db_insert.php archivo con el siguiente contenido. No olvide reemplazar los parámetros de conexión con los suyos propios.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$insert_query = "INSERT INTO students(`first_name`,`last_name`,`email`)
VALUES ('". mysqli_real_escape_string($mysqli_link, 'John') ."','". mysqli_real_escape_string($mysqli_link, 'Wood') ."','". mysqli_real_escape_string($mysqli_link, '[email protected]') ."')";
 
// run the insert query
If (mysqli_query($mysqli_link, $insert_query)) {
    echo 'Record inserted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Primero, configuramos una conexión a la base de datos usando mysqli_connect función, como hemos comentado anteriormente. Después de eso, hemos preparado la consulta de inserción que vamos a ejecutar más adelante. Es importante tener en cuenta que hemos utilizado mysqli_real_escape_string función para escapar de los valores de cadena que vamos a utilizar en la consulta de inserción. Específicamente, debe usar esta función cuando se trata de valores enviados a través de $_POST variables para evitar la inyección de SQL.

Finalmente, hemos usado el mysqli_query función, que toma dos argumentos. El primer argumento es el enlace de conexión activo donde se ejecutará la consulta. Y el segundo argumento es la consulta MySQL que queremos ejecutar. El mysqli_query la función devuelve TRUE si la consulta se ejecutó con éxito.

Finalmente, hemos usado el mysqli_close función para cerrar la conexión de base de datos activa. Es una buena práctica cerrar la conexión de la base de datos una vez que haya terminado con las operaciones de la base de datos.

Continúe y ejecute el script, y eso debería insertar un registro en students mesa!

Cómo actualizar registros

Actualizar los registros en una base de datos desde el script PHP es muy similar a la operación de inserción; la única diferencia es que la consulta será la consulta de actualización en lugar de la consulta de inserción.

Revisemos el ejemplo anterior y actualicemos el first_name campo, como se muestra en el siguiente ejemplo.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$update_query = "UPDATE students SET `first_name` = '". mysqli_real_escape_string($mysqli_link,'Johnny') ."' WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $update_query)) {
    echo 'Record updated successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Continúe y ejecute el script, y eso debería actualizar el registro en students mesa.

Cómo seleccionar registros

En las secciones anteriores, discutimos cómo puede insertar y actualizar registros en una base de datos desde el script PHP. En esta sección, exploraremos cómo puede obtener registros de una base de datos utilizando los diferentes tipos de funciones de MySQLi.

En primer lugar, debe usar mysqli_query función para ejecutar la consulta de selección. Tras la ejecución exitosa de la consulta de selección, mysqli_query La función devuelve el objeto de resultado mysqli, que podríamos usar para iterar sobre los registros devueltos por la consulta de selección. Cuando se trata de buscar e iterar sobre los registros del objeto de resultado de MySQLi, hay diferentes funciones disponibles.

  • mysqli_fetch_all :Le permite obtener todas las filas de resultados a la vez. También puede especificar si desea resultados como una matriz asociativa, una matriz numérica o ambas.
  • mysqli_fetch_array :Le permite recuperar una fila a la vez. Y por lo tanto, tendrá que usar el ciclo while para iterar sobre todos los registros. Nuevamente, puede especificar si desea una fila de resultados como una matriz asociativa, una matriz numérica o ambas.
  • mysqli_fetch_assoc :Obtiene una fila de resultados una a la vez como una matriz asociada.
  • mysqli_fetch_object :Obtiene una fila de resultados una a la vez como un objeto.

Echemos un vistazo al siguiente ejemplo para entender cómo funciona:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$select_query = "SELECT * FROM students LIMIT 10";
$result = mysqli_query($mysqli_link, $select_query);

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "First Name:" . $row['first_name'] . "<br/>";
    echo "Last Name:" . $row['last_name'] . "<br/>";
    echo "Email:" . $row['email'] . "<br/>";
    echo "<br/>";
}

// close the db connection
mysqli_close($mysqli_link);
?>

Como puede ver, hemos utilizado el mysqli_fetch_array función con el MYSQLI_ASSOC opción como segundo argumento. Y por lo tanto, devuelve la fila de resultados como una matriz asociada. Si usa el MYSQLI_NUM opción, accedería como $row[0] , $row[1] y $row[2] en el ejemplo anterior.

Por otro lado, si usa el mysqli_fetch_object función en el ejemplo anterior, puede acceder a los valores como se muestra en el siguiente fragmento. Para abreviar, solo incluiré el fragmento de código while.

…
…
while ($row = mysqli_fetch_object($result)) {
    echo "First Name:" . $row->first_name . "<br/>";
    echo "Last Name:" . $row->last_name . "<br/>";
    echo "Email:" . $row->email . "<br/>";
    echo "<br/>";
}
...
...

Entonces, de esta manera, puede obtener y mostrar registros de la base de datos MySQLi.

Cómo eliminar registros

En esta sección, veremos cómo ejecutar consultas de eliminación desde el script PHP. Eliminar registros de una base de datos es una operación bastante sencilla, ya que solo necesita preparar la consulta de eliminación y ejecutarla con mysqli_query función.

Veamos el siguiente ejemplo para ver cómo funciona.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$delete_query = "DELETE FROM students WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $delete_query)) {
    echo 'Record deleted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Como puede ver, todo es igual que ya hemos visto con los ejemplos de inserción y actualización, excepto que la consulta es una consulta de eliminación en este caso.

Así es como puede realizar diferentes tipos de operaciones de base de datos desde el script PHP.

Y con eso, hemos llegado al final de este tutorial. Lo que hemos discutido hasta ahora debería ayudarlo a fortalecer los conceptos de conectividad de la base de datos, específicamente cómo conectar PHP a MySQL y realizar diferentes tipos de operaciones.