Informix ODBC Driver ...无效的连接字符串属性?

时间:2017-12-11 13:54:12

标签: php pdo informix

之前我从未使用过PDO来连接Informix数据库,在运行基本查询时出现了这个错误:

SQLSTATE=01S00, SQLDriverConnect: -11005 [Informix][Informix ODBC Driver]Invalid connection string attribute. 

这是我的代码:

<?php

class prueba{
private static $cn = null;

 public static function conectar(){
    if(self::$cn !== null ) {
      return self::$cn;
    }
    try{
       self::$cn= new PDO("informix:host=localhost; service=30000;
    database=mrroot; server=mrserver; protocol=onsoctcp;
    EnableScrollableCursors=1", "mrtony", "");
       return self::$cn;

    } catch (PDOException $ex){
       die($ex->getMessage());
    }
  }


 public static function consulta(){

    $query = "SELECT * FROM fr_envio";

    $cn = prueba::conectar();

    $resultado = $cn->prepare($query);

    $resultado->execute();

        echo '<table>';
        while ($row = $resultado->fetch(PDO::FETCH_ASSOC))
            {
                echo '<tr>';
                echo '<td>'.$row['enviopre'].'</td>';
                echo '<td>'.$row['enviofra'].'</td>';
                echo '<td>'.$row ['enviopec'].'</td>';
                echo '<td>'.$row ['envioval'].'</td>';
                echo '</tr>';
            }

        echo '</table>';

}

}


$prueba = new prueba();

$prueba->consulta();
?>  

我在Mysql上测试了相同的代码,只需更改连接字符串,一切都很完美,似乎连接字符串缺少某些东西,我不知道它可能是什么。

我按照本教程中的说法进行了操作:

https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.virtapp.doc/TD_item2.htm

1 个答案:

答案 0 :(得分:3)

嗯...尝试在一行中指定连接字符串。

root@irk:/usr3/products/php53# cat test.php
<?php

$db = new PDO("informix:host=irk;service=3046;database=stores7;
server=irk1210;protocol=onsoctcp;EnableScrollableCursors=1;", "informix", "ximrofni");

print "Connection Established!\n\n";

$stmt = $db->query("select * from systables");
$res = $stmt->fetch( PDO::FETCH_BOTH );
$rows = $res[0];
echo "Table contents: $rows.\n";


?>
root@irk:/usr3/products/php53# php test.php
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE=01S00, SQLDriverConnect: -11005 [Informix][Informix ODBC Driver]Invalid connection string attribute.' in /usr3/products/php5/test.php:4
Stack trace:
#0 /usr3/products/php5/test.php(4): PDO->__construct('informix:host=i...', 'informix', 'ximrofni')
#1 {main}
  thrown in /usr3/products/php5/test.php on line 4
root@irk:/usr3/products/php53# 

像这样:

root@irk:/usr3/products/php53# cat test.php
<?php

$db = new PDO("informix:host=irk;service=3046;database=stores7; server=irk1210;protocol=onsoctcp;EnableScrollableCursors=1;", "informix", "ximrofni");

print "Connection Established!\n\n";

$stmt = $db->query("select * from systables");
$res = $stmt->fetch( PDO::FETCH_BOTH );
$rows = $res[0];
echo "Table contents: $rows.\n";


?>
root@irk:/usr3/products/php53# php test.php
Connection Established!

Table contents: systables.
root@irk:/usr3/products/php53#