查询在DB上直接执行时运行正常,但是当使用php执行时它会失败

时间:2013-09-13 22:08:02

标签: php mysql

查询在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");

1 个答案:

答案 0 :(得分:1)

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

  

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

我认为,他们的建议可以帮到你。

  

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

如果没有,也许会有其他方式,但我确定你需要深入研究。