0

直接在 DB 上执行时查询运行良好,但使用 PHP 执行时会失败。

SELECT  count(A.age),LEFT(C.name, 10) FROM game A  INNER JOIN `dixit` C ON (A.roll=C.roll) WHERE LEFT(C.added, 10)>='09-05-2013' group by LEFT(C.added, 10) INTO OUTFILE '/tmp/total.txt';

在 PHP 中:

$query_t = "
    SELECT  count(A.age),LEFT(C.name, 10) 
    FROM game A  
    INNER JOIN `dixit` C ON (A.roll=C.roll) 
    WHERE LEFT(C.added, 10)>='09-05-2013' 
    GROUP BY LEFT(C.added, 10) 
    INTO OUTFILE '/tmp/total.txt'
";

mysql_query($query_t) or die ("query failed");
4

1 回答 1

1

问题是你不能INTO OUTFILE在 PHP 中使用语句。MySQL 文档说:

SELECT ... INTO OUTFILE 语句的主要目的是让您非常快速地将表转储到服务器机器上的文本文件中。如果要在服务器主机以外的其他主机上创建结果文件,通常不能使用 SELECT ... INTO OUTFILE,因为无法写入相对于服务器主机文件系统的文件路径。

我认为,他们下面的建议可以帮助你。

但是,如果远程机器上安装了 MySQL 客户端软件,您可以改为使用 mysql -e "SELECT ..." > file_name 等客户端命令在客户端主机上生成文件。

如果没有,也许会有其他方式,但我相信你需要深入研究这种方式。

于 2013-09-13T22:55:31.390 回答