Portada » Lenguaje PHP » Importar archivo SQL a MySQL con PHP

Importar archivo SQL a MySQL con PHP

Importar archivo SQL a MySQL con PHP. Ejecutar un script SQL mediante PHP puede ser muy útil si deseamos crear, poblar y/o actualizar una base de datos de manera dinámica.

Por ejemplo, si hemos desarrollado u sistema web, app o un plugin el cual se tiene que descargar e instalar online creando y actualizando sus tablas de manera dinámica, esta particularidad hace que nuestro script sea óptimo y fácil de usar hacia el usuario final.

Importar archivo SQL a MySQL con PHP
Importar archivo SQL a MySQL con PHP

Importar archivo SQL a MySQL con PHP

  • Utilizaremos varios ejemplos de código en PHP para importar archivos SQL a una base de datos. Para ello extraeremos el contenido del archivo en un array compuesto de líneas mediante la función de PHP file().
  • Recorreremos todas las líneas del array en un bucle foreach para armar la consulta omitiendo comentarios y líneas vacías.
  • Ejecutamos e importamos las consultas SQL del archivo

Código PHP para importar un script SQL

Si necesita crear bases de datos dinámicamente desde PHP. Vamos a ver varios ejemplos para interactuar con MySQL. Usaremos de tipo mysqli_query línea por línea o PDO.

¿Cómo cargo un archivo SQL desde PHP (como lo hace phpMyAdmin con su comando de importación)?

Es muy fácil y sencillo, a continuación, veremos 3 ejemplos completos.

Ejecutar archivo .sql desde php

Para cargar un fichero SQL a MySQL podemos usar las siguientes líneas de código PHP

$sql = file_get_contents('database.sql');

$mysqli = new mysqli("localhost", "root", "pass", "testdb");

/* ejecutar multiples query */
$mysqli->multi_query($sql);

Usando MySQLi con Foreach

Aquí tenemos otro ejemplo basado en MySQLi usando el ciclo FOREACH de PHP

<?php
$conn =new mysqli('localhost', 'root', '' , 'blog_samples');

$query = '';
$sqlScript = file('database-script.sql');
foreach ($sqlScript as $line) {

$startWith = substr(trim($line), 0 ,2);
$endWith = substr(trim($line), -1 ,1);

if (empty($line) || $startWith == '--' || $startWith == '/*' || $startWith == '//') {
continue;
}

$query = $query . $line;
if ($endWith == ';') {
mysqli_query($conn,$query) or die('<div class="error-response sql-import-response">Problem in executing the SQL query <b>' . $query. '</b></div>');
$query= '';
}
}
echo '<div class="success-response sql-import-response">SQL file imported successfully</div>';
?>

Ciclo WHILE podemos importar ficheros SQL

Si sos fanático del ciclo WHILE este ejemplo sera genial para poder importar hacia MySQL.

// Recuperamos el fichero como un string
$fileSQL = file_get_contents('ruta_fichero.sql');


/* Ejecutar consulta multiquery */
if ($mysqli->multi_query($fileSQL)) {
do {
/* Almacenar primer juego de resultados */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
print_r($row);
echo "<br/>";
}
$result->free();
}
/* mostrar divisor */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
// Avanzar al siguiente resultado
} while ($mysqli->next_result());
}

/* cerrar conexión */
$mysqli->close();

Ejecutar archivo SQL con PHP PDO

Si estas acostumbrado a trabajar con PDO esta sera la mejor alternativa, y se requiere los siguientes pasos:

  • Crear un fichero PHP
  • Realizar la conexión MySQL con PHP PDO
  • Usar la función file_get_contents de PHP
  • Ejecutar la instrucción con $db->exec($sql)
<?php
// parametros de conexion
$username = 'root';
$password = 'root';
// Declaramos la base de datos a poblar
$db_name = 'my_database';


$db = new PDO('mysql:host=localhost;dbname='.$db_name.'', $username, $password);

// Agregamos el fichero SQL
$sql = file_get_contents('db_tienda.sql');
// Ejecutamos la instruccion
$qr = $db->exec($sql);
?>

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 4 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad