LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1117|回复: 1

postgresql中插入数据库的问题--php脚本

[复制链接]
发表于 2004-5-4 12:18:04 | 显示全部楼层 |阅读模式
以php cli脚本程序来实现文本数据插入数据库.该文本是以tab分割的.
代码如下:
[PHP]#!/usr/bin/php
<?php
if (!$argv[1]){
  echo "Usageargv[0] filename!";
  exit;
  }

  $connect = pg_connect("host=localhost dbname=mydb user=postgres password=123") or die("数据库连接错误");
  $infile=fopen($argv[1],"r") or die ("Cannot open file $argv[1]\n");
  while (!feof ($infile)){
  $line = fgets($infile,8192);
  $table= "basic";
  $array = explode("\t",$line);
  $sql = "insert into $table value (";
  while (list($name,$value) = each($array)){
   $sql .="$value,";
   }
  $sql .=");";  echo "$sql\n";
  $res =pg_query($connect,$sql);
  if($res){
   echo "insert data succesfully\n";
  }
  else{
    echo "Wrong inputs\n";
  }
   } [/PHP]
执行该脚本的时候,echo $sql的结果:
insert into basic value ("R1017","XJWE0298",,,"印度尼西亚","印度尼西亚","印度尼 西亚",,,,,"国外种质" ,);
该sql语句应该没有错误.
但执行到pg_query的时候,提示说:


Warning: pg_query(): Query failed: 错误:  parser: parse error at or near "value" at character 19 . in /home/ch/db/connect.php on line 64 错误:  parser: parse error at or near "value" at character 19 Wrong inputs

本来打算用pg_insert函数,但涉及到一个数组的结构问题,即必须用 field=>value 结构,很麻烦.
 楼主| 发表于 2004-5-6 14:34:14 | 显示全部楼层
自己已经找到原因了。问题还是出在那就sql语句上,最后多了一个逗号。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表