本帖最后由 jkxlh20120001 于 2013-05-14 21:41:53 编辑

解决方案 »

  1.   

    错误提示就是:The database query fail
    可我直接用调试时输出的$sql的值直接在pgAdminIII中执行,又是成功插入数据的。
    如:INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('3708','中国近现代史纲要')
    但VALUES中使用从Excel可读出来的变量又不行。
      

  2.   

    // $sql="INSERT INTO zikao_tzd_kecheng(\"KC_DM\",\"KC_MC\")  VALUES('1111','ok')";
    //执行上面这句都是可以成功插入的
    $sql="INSERT INTO zikao_tzd_kecheng(\"KC_DM\",\"KC_MC\")  VALUES('".$ss[0]."','".$ss[1]."')";
    //但上面这句用变量$ss[0],$ss[1]就插入不成功,提示The database query fail
      

  3.   

    echo pg_last_error($PG);   看看echo $sql; 
    贴出结果看看
      

  4.   

    这是echo $sql的结果。
    INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('6029','工作分析')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('3708','中国近现代史纲要')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0112','计算机基础')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程3')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程4')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程5')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程6')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程7')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程8')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程9')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程10')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程11')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程12')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程13')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程14')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程15')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程16')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程17')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程18')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程19')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程20')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程21')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程22')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程23')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程24')
    The database query fail.INSERT INTO zikao_tzd_kecheng("KC_DM","KC_MC") VALUES('0003','测试课程25')
    The database query fail.
      

  5.   

    conn.php内容
    <?php
    include 'class/PGDB.php';  
    $PG = new pgsql("localhost", "5432", "name", "user", "pass");  
    $PG->connect();
    if(!$PG)  
    {  
    echo "无法连接到PostGreSQL数据库!";
    exit;

    ?>
    PGDB.php内容
    <?php  class pgsql
     {
      private $linkid; // PostgreSQL连接标识符
      private $host; // PostgreSQL服务器主机
      private $port; // PostgreSQL服务器主机端口
      private $user; // PostgreSQL用户
      private $passwd; // PostgreSQL密码 
     private $db; // Postgresql数据库
      private $result; // 查询的结果  
    private $querycount; // 已执行的查询总数  
    /* 类构造函数,用来初始化$host、$user、$passwd和$db字段。 */  
    function __construct($host, $port ,$db, $user, $passwd) {  
    $this->host = $host;  
    $this->port = $port;  
    $this->user = $user;  
    $this->passwd = $passwd;  
    $this->db = $db;  
    }  
    /* 连接Postgresql数据库 */  
    function connect(){  
    try{  
    $this->linkid = @pg_connect("host=$this->host port=$this->port dbname=$this->db  
    user=$this->user password=$this->passwd");  
    if (! $this->linkid)  
    throw new Exception("Could not connect to PostgreSQL server.");  
    }  
    catch (Exception $e) {  
    die($e->getMessage());  
    }  
    }  
    /* 执行数据库查询。 */  
    function query($query){  
    try{  
    $this->result = @pg_query($this->linkid,$query);  
    if(! $this->result)  
    throw new Exception("The database query fail.");  
    }  
    catch (Exception $e){  
    echo $e->getMessage();  
    }  
    $this->querycount++;  
    return $this->result;  
    }  
    /* 确定受查询所影响的行的总计。 */  
    function affectedRows(){  
    $count = @pg_affected_rows($this->linkid);  
    return $count;  
    }  
    /* 确定查询返回的行的总计。 */  
    function numRows(){  
    $count = @pg_num_rows($this->result);  
    return $count;  
    }  
    /* 将查询的结果行作为一个对象返回。 */  
    function fetchObject(){  
    $row = @pg_fetch_object($this->result);  
    return $row;  
    }  
    /* 将查询的结果行作为一个索引数组返回。 */  
    function fetchRow(){  
    $row = @pg_fetch_row($this->result);  
    return $row;  
    }  
    /* 将查询的结果行作为一个关联数组返回。 */  
    function fetchArray(){  
    $row = @pg_fetch_array($this->result);  
    return $row;  
    }  
    /* 返回在这个对象的生存期内执行的查询总数。这不是必须的,但是您也许会感兴趣。 */  
    function numQueries(){  
    return $this->querycount;  
    }  
    function close()
     {
     @pg_close($this->linkid);
     }}  
    ?>  
      

  6.   

    你这个应该是页面编码的问题。中文可能乱码了。
    mysql_query('set names utf8')
      

  7.   

    的确如lang11zi 所说,我把需要写入的字符串转化为 utf8就ok了。因为字符串是从 Excel读出来的,默认是GB2312。
    谢谢以上各位的解答。散分。