为了账号安全,请及时绑定邮箱和手机立即绑定

严格标准:在/main_dir/sub_dir/backup.php 中只应通过引用传递变量

严格标准:在/main_dir/sub_dir/backup.php 中只应通过引用传递变量

PHP
烙印99 2021-11-26 16:25:25
我能够从浏览器运行脚本并备份我的 mysql 数据库,但是当我尝试使用 cron 作业执行此操作时,出现错误:严格的标准:在 /main_dir/sub_dir/backup.php 中只应通过引用传递变量警告:在命令行界面上使用密码可能不安全。有什么建议?而且,为什么会出现密码警告?<?php//Enter your database information here and the name of the backup file$mysqlDatabaseName ='xxxxxxxxxxxxxx';$mysqlUserName ='xxxxxxxxxxxxxx';$mysqlPassword ='xxxxxxxxxxxxxx_';$mysqlHostName ='xxxxxxxxxxxxxx';$mysqlExportPath ='xxxxxxxxxxxxxx.sql';//Please do not change the following points//Export of the database and output of the status$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' > ' .$mysqlExportPath;exec($command,$output=array(),$worked);switch($worked){    case 0:        echo 'The database <b>' .$mysqlDatabaseName .'</b> was successfully stored in the following path '.getcwd().'/' .$mysqlExportPath .'</b>';        break;    case 1:        echo 'An error occurred when exporting <b>' .$mysqlDatabaseName .'</b> zu '.getcwd().'/' .$mysqlExportPath .'</b>';        break;    case 2:        echo 'An export error has occurred, please check the following information: <br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr></table>';        break;}?>应该允许我使用 cron 作业进行 mysql db 备份。
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

对于第一个错误,更改

exec($command,$output=array(),$worked);

$output = array();
exec($command,$output,$worked);

由于第二个参数 toexec()是一个引用参数,它必须是一个变量,而不是一个表达式。

请参阅在终端内使用 mysql 抑制警告消息,但在 bash 脚本中编写密码以获取多种防止在命令行上使用密码的警告的方法。


查看完整回答
反对 回复 2021-11-26
  • 1 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信