Ejecutando archivos mysql *.sql en php
al crear bases de datos del sitio web, puede encontrar escenarios donde necesita ejecutar . Archivos SQL de PHP para automatizar la generación de sitios. Mientras que Zend_framework puede ser beneficioso, ejecutar . Los archivos SQL directamente desde PHP pueden ser desafiantes debido a las inconsistencias en las declaraciones SQL.
Solución: usando shell_exec ()
] El enfoque recomendado es invocar la herramienta MySQL usando shell_exec () para ejecutar su script *.sql. Aquí hay un ejemplo:$ command = 'mysql' . '--host ='. $ vals ['db_host'] . '--User ='. $ vals ['db_user'] . ' - -password ='. $ vals ['db_pass'] . '--database ='. $ vals ['db_name'] . '--execute = "fuente'. $ script_path ;
$command = 'mysql' . ' --host=' . $vals['db_host'] . ' --user=' . $vals['db_user'] . ' --password=' . $vals['db_pass'] . ' --database=' . $vals['db_name'] . ' --execute="SOURCE ' . $script_path ;Este comando crea un comando de ejecución mysql con los parámetros necesarios para ejecutar el archivo *.sql especificado en $ script_path.
diferencias entre shell_exec () y exec ()
Aunque ambas funciones ejecutan comandos externos, tienen algunas distinciones. shell_exec () captura la salida del comando y la devuelve como una cadena, mientras que exec () devuelve el estado de la ejecución del comando. En este caso, se prefiere que shell_exec () obtenga la salida del comando mysql.
consideraciones adicionales
al ejecutar *.sql archivos, asegurar que el comando incluya todos Los parámetros necesarios (db_host, db_user, db_pass, db_name) y tiene permisos suficientes para ejecutar el script. Además, use la opción --execute = "fuente ..." en lugar deDescargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3