php - 如何在 laravel 中将文件写入桌面?
问题描述
我正在尝试为我的数据库编写备份,
我想要如果单击按钮,应用程序会将数据库导出到桌面。
如果我使用 laravel 数据库目录路径,应用程序会将文件导出到我的数据库目录中
但如果我更改桌面位置的路径,桌面上不会出现任何内容。
$get_all_table_query = "SHOW TABLES";
$result = DB::select(DB::raw($get_all_table_query));
$tables = [
'users',
'migrations'
];
$structure = '';
$data = '';
foreach ($tables as $table) {
$show_table_query = "SHOW CREATE TABLE " . $table . "";
$show_table_result = DB::select(DB::raw($show_table_query));
foreach ($show_table_result as $show_table_row) {
$show_table_row = (array)$show_table_row;
$structure .= "\n\n" . $show_table_row["Create Table"] . ";\n\n";
}
$select_query = "SELECT * FROM " . $table;
$records = DB::select(DB::raw($select_query));
foreach ($records as $record) {
$record = (array)$record;
$table_column_array = array_keys($record);
foreach ($table_column_array as $key => $name) {
$table_column_array[$key] = '`' . $table_column_array[$key] . '`';
}
$table_value_array = array_values($record);
$data .= "\nINSERT INTO $table (";
$data .= "" . implode(", ", $table_column_array) . ") VALUES \n";
foreach($table_value_array as $key => $record_column)
$table_value_array[$key] = addslashes($record_column);
$data .= "('" . wordwrap(implode("','", $table_value_array),400,"\n",TRUE) . "');\n";
}
}
$file_name = dirname("C:\Users\ADC-2\Desktop") .'/database_backup_on_' . date('y_m_d') . '.sql';
$file_handle = fopen($file_name, 'w + ');
$output = $structure . $data;
fwrite($file_handle, $output);
fclose($file_handle);
echo "DB backup ready";
它将显示数据库备份就绪,但桌面上没有真正显示任何内容。
解决方案
推荐阅读
- git - Mac Cron 作业失败:Sh 脚本手动运行良好,无法在 crontab 中获取 git origin
- c++ - 我只是运行简单的 c++ 程序来检查我的 mingW 是否正常工作,但我遇到了这个错误。有人可以帮我解决吗?
- javascript - 在react中的选项卡之间切换后useRef当前值的重复值
- php - Laravel 8 - 使用 AuthCheck 中间件,只是试图检查会话中有用户名,但它给出了一个错误错误描述如下
- node.js - 如何使用节点 js 更新 mongodb 中的多条记录
- html - 网格行填充页面的可用内容
- python - 在提交之前从 Flask 应用程序输入中获取数据库信息
- sql - Postgres 查询用于检查买卖完成后可用的股票
- node.js - Mongoose:findOneAndUpdate 不适用于多种条件
- python-3.x - Python Selenium 无法在 Azure 管道中运行