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ファイルの内容を1行ずつ取得します。

を使用freadしてファイルのすべてのコンテンツを取得し、2番目のパラメーターをファイルのサイズに設定します。

$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 に答える