我有一个包含所有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:
如何从文本文件中执行命令?
答案 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);