从文本文件中读取和执行命令

时间:2013-03-25 12:15:50

标签: php

我有一个包含所有sql命令的txt文件。我需要打开文件,阅读命令并对postgresql执行。

$file = fopen("createme.sql.txt", "r") or exit("Unable to open file!");

while(!feof($file))
  {
  pg_query($conn, fgets($file));
  }
fclose($file);

我希望上面的代码可以正常工作。但是显示错误:

PHP Warning:  pg_query(): Query failed: 

如何从文本文件中执行命令?

2 个答案:

答案 0 :(得分:1)

fgets逐行获取文件内容。

使用fread获取文件的所有内容,将第二个参数设置为文件大小。

$fileName = "createme.sql.txt";
$file = fopen($fileName, "r") or exit("Unable to open file!");

// checking if opening file is error.
if(!feof($file))
  {
  $str = fread($file, filesize($fileName));
  pg_query($conn, $str);
  }
fclose($file);

感谢@smassey的另一个技巧

$fileName = "createme.sql.txt";
$str = file_get_contents($fileName);
pg_query($conn, $str);
fclose($file);

答案 1 :(得分:0)

尝试trim()从每行末尾开始"\r\n"

$file = fopen("createme.sql.txt", "r") or exit("Unable to open file!");

while(!feof($file))
  {
  pg_query($conn, trim(fgets($file)));
  }
fclose($file);