繁体   English   中英

mysqldump --fields-enclosed-by = \\“如何在PHP的Exec命令中转义引号

[英]mysqldump --fields-enclosed-by=\" How to escape quote marks in Exec Command in PHP

我有这样的代码不起作用:($ output =空和$ result = 1 ...所以出了点问题);

exec("(C:\wamp64\bin\mysql\mysql5.7.9\bin\mysqldump.exe -u$username -p$password --tab=$path_to_export --skip-add-drop-table --skip-triggers --fields-enclosed-by=\" --fields-terminated-by=, $db_name) 2>&1", $output, $result);

但是,如果我删除此参数--fields-enclosed-by = \\“ ,则效果很好

由此推断出引号是问题。 知道如何正确逃脱吗?

使用escapeshellarg来转义外壳参数。 另外,您应该在路径名中转义反斜杠,或使用正斜杠,因为其中一些会被解释为转义序列( \\b为退格)。

exec("C:/wamp64/bin/mysql5.7.9/bin/mysqldump.exe -u$username -p" . escapeshellarg($password) . " --tab=$path_to_export --skip-add-drop-table --skip-triggers --fields-enclosed-by=" . escapeshellarg('"') . " --fields-terminated-by=, $db_name 2>&1", $output, $result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM