php - 如何使用 PHP 脚本通过 .sql 文件更新远程服务器的数据库?

标签 php mysql

我想在 PHP 中创建一个实用程序,例如 phpMyAdmin 的导入选项,它应该允许通过 .sql 文件将数据库更新到远程服务器,而无需创建新数据库。

由于它是客户端实用程序,因此不允许访问 cpanel。

该应用程序有两种工作环境,离线和在线。

如果客户端离线工作,则需要对数据库进行备份,并应与在线服务器类似地更新数据库。

然后他们必须更新远程服务器的数据库。

最佳答案

解决方案1

如果您在 Linux 系统上运行 PHP,您可以尝试使用“mysql”命令本身。但请注意,您的 PHP 安装有权运行“系统”命令,例如 system()、exec() 等。

所以这就是我想说的:

system("mysql -U{db_user_name} -h{db_host} -P{db_password} < {full_path_to_your_sql_file}");

请更换,

{db_user_name} 为数据库用户名,

{db_host} 与数据库主机,

{db_password} 为数据库密码,

{full_path_to_your_sql_file} 为 SQL 文件的路径。

这当然需要上传 SQL 文件。

解决方案 2:

逐行读取 SQL 文件,并在读取时使用 PHP 的标准 MySQL 库执行每个语句。像这样的东西:

$arrFile = file("full_path_to_sql_file.sql", FILE_IGNORE_NEW_LINES);
foreach ($arrFile as $q) {
    mysql_query($q);
}

但是,这可能并不像看起来那么简单。如果您的 SQL 文件包含注释和其他 .sql 特定语句,您可能需要进行检查以忽略它们。或者,如果 SQL 文件只包含 SQL 语句,那就更好了。

关于php - 如何使用 PHP 脚本通过 .sql 文件更新远程服务器的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8767830/

相关文章:

java - Spring + JSF - 从数据库检索图像并在浏览器中显示

php - 如何使用 PHP 从加权 'teams' 列表中随机但公平地创建 'users'?

php - 如何限制直接从 MYSQL 数据库和 PHP 创建的 list 中的选择(*不是通过在 HTML 中手动制作 list *)

PHP、Mysql选择行

php - 数据库中的图像链接插入无需\

mysql - 子查询中的 GROUP_CONCAT 产生不可预测的结果

php - 为什么我的数据库值没有显示在我的下拉菜单中?

mysql - sql - 结果得到行位置

php - 简单的插入语句在 php 代码中不起作用。在 MySQL Workbench 上运行

mysql - 两个 Web 服务器之间的 phpMyAdmin 安装