我想在 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/