gpt4 book ai didi

php - 没有 INSERT 和 TAB 而不是逗号的 Mysqldump

转载 作者:行者123 更新时间:2023-11-30 22:52:30 26 4
gpt4 key购买 nike

我正在使用 PHP 和 mysqldump 从带有 blob 的表中获取一些数据。我的客户在他的本地机器上使用 mysqldump,得到的结果与我使用 shell_exec() 通过 PHP 运行它时得到的结果大不相同。这些是问题:

1) 列由 , 而不是 TAB 分隔。文档说 TAB 是默认的,但它使用逗号..

2) Blob 被'(引号)括起来

3) 本地 mysqldump 正在输出用\转义的 TAB 和 LF 字符。由于某种原因,我的 PHP mysqldump 似乎用“\n”和“\r”替换了 TAB 和 LF 字符

我已经阅读了文档并尝试使用我可以使用的任何 mysqldump 选项,但似乎还不够。

$out = shell_exec('mysqldump  --default-character-set=utf8 --no-create-info --compact --user=xxx--password=xxx--host=xxx.xxx.com db table');
echo $out;

感谢任何帮助..

最佳答案

差异可能是由于 mysqldump 的不同版本以及 linux 与 windows 的行尾(Windows 上的 CrLF 和 Linux 上的 LF)。所有这些都可以通过命令行选项来控制。运行 mysqldump -?要获得选项,这里是与您的问题相关的选项:

--lines-terminated-by=name
Lines in the output file are terminated by the given
string.
--fields-terminated-by=name
Fields in the output file are terminated by the given
string.
--fields-enclosed-by=name
Fields in the output file are enclosed by the given
character.
--fields-optionally-enclosed-by=name
Fields in the output file are optionally enclosed by the
given character.
--fields-escaped-by=name
Fields in the output file are escaped by the given
character.

还要注意,有一个 TAB 分隔输出的选项,但这只适用于 mysqldump 和 mysqld 在同一台服务器上

-T, --tab=name      Create tab-separated textfile for each table to given
path. (Create .sql and .txt files.) NOTE: This only works
if mysqldump is run on the same machine as the mysqld
server.

关于php - 没有 INSERT 和 TAB 而不是逗号的 Mysqldump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27725980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com