[英]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.