0

我有一个包含所有 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: 

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

4

2 回答 2

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);
于 2013-03-25T12:24:33.320 回答
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);
于 2013-03-25T12:30:05.070 回答