gpt4 book ai didi

php - 当从 php 执行时,mysql 导入的整理不同

转载 作者:行者123 更新时间:2023-11-29 00:05:34 26 4
gpt4 key购买 nike

晚上好:

我有一个接收 .sql 文件的 php 脚本,然后该脚本将其导入数据库并对导入的数据进行一些更改。它调用这个(移动上传的文件后):

shell_exec('nohup bash import.sh > import.log 2>&1 &');

在 import.sh 中有这样的命令:

mysql -h localhost -u x -px x < file_uploaded.sql

当我从控制台运行 'nohup bash impor.sh > import.log 2>&1 &' 时,它工作得很好,但是当从 php 脚本 (nginx) 运行时,它会导入带有不正确排序规则的 .sql,出现奇怪的字符。

最佳答案

我假设您的输入文件是用 utf8 编码的。如果不是,请适当更改以下编码。

只是一个猜测,但对于由 PHP 执行的脚本,可能设置了错误的 LANG 或者它丢失了,默认不是 utf-8。尝试在您的 import.sh 中明确设置 LANG:

export LANG="en_US.UTF-8" # or whatever your default locale is
mysql -h localhost -u x -px x < file_uploaded.sql

此外,您可以尝试为 mysql 使用 --default-character-set= 选项:

mysql -h localhost -u x -px x --default-character-set=utf8 < file_uploaded.sql

关于php - 当从 php 执行时,mysql 导入的整理不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27651230/

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