fgets() 在通过命令提示符执行时不起作用


fgets() doesn't work when executed through Command Prompt

我一直在挠头,为什么我的代码几天都不起作用(因为当我打印出变量时,它们很好,但不会记录到数据库中),但现在我意识到问题是 PHP 没有读取 CSV 文件(基本上我需要做的是获取 CSV 文件, 并将其移植到PostgreSQL数据库)。

我现在意识到它不起作用的原因是因为我在尝试写入数据库时通过命令行执行代码,但在测试时在浏览器中执行代码。

这让我意识到当我通过cmd执行代码时,文件没有被读取。CSV 文件太大,无法在浏览器中执行并导致内部服务器错误,所以我必须通过 cmd 执行它,但是当我这样做时,它不会读取文件,那么我将如何解决这个问题?

很可能您有文件所有者/权限问题。当您在浏览器中执行脚本时,它被解释为用户 www-data(或任何您的用户)。当您从命令行运行时,您以您自己的身份运行它,这是另一个用户。

例如,更改文件权限或从 Web 用户运行脚本

sudo -u www-data php yourscriptname.php