我在windows上使用PHP系统函数如下:
system("mysql --user=root --password=xxxx --host=127.0.0.1 --verbose <create.sql > out.txt 2>&1", $retVal);
但是错误消息出现在文件的顶部。是否可以在有错误的相应 SQL 行之后显示错误消息。
问题是 stdout 是缓冲的,而 stderr 并不意味着在这种情况下总是首先显示错误。如果您希望保留某种顺序,您将需要将系统调用包装在脚本中并在之后对其进行排序。这里有一些解释。