$dbh = new PDO("DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$db;"."HOSTNAME=$host;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$pass;", $user, $pass);报错:invalid data source name请问数据源该怎么写啊?

解决方案 »

  1.   

    1.直接将参数传入构造函数$pdo_conn = new PDO('odbc:mydb2', 'db2admin', 'mypassword');
     
    其中mydb2是为DB2 Express C建立的数据源。2.通过文件数据源连接DB2数据库$pdo_conn = new PDO("url:file://usr/local/db2.dsn");
     
    其中db2.dsn是为DB2 Express C建立的文件数据源。3.将连接字符串引用php.ini中在php.ini中加入如下的信息:[PDO]pdo.dsn.mydb2 = " odbc:mydb2; username=db2admin; password=mypassword"$pdo_conn = new PDO('mydb2', 'db2admin', 'mypassword');
     
    上面三种方法虽然都是使用的DB2数据源,但在后面的操作中(如查询数据等)的接口和其他的数据库完全一致。如下面是使用$pdo_conn来查询test中的mytable表中的数据。$sql = 'SELECT id, name, salary FROM mytable ORDER BY salary DESC';foreach ($pdo_conn->query($sql) as $row) ...{print $row['id'] . "\t";print $row['name'] . "\t";print $row['salary'] . "\n";}}?>
     
    下面是一种可能的输出结果:1000 mike 2000 2000 john 2500 … … 7000 bill 10000
     
    PDO除了可以进行基本的数据库操作外,还可以通过beginTransaction、rollBack、commit方法对数据库进行事务操作。
      

  2.   

    $pdo_conn = new PDO('odbc:mydb2', 'db2admin', 'mypassword'); 
    其中mydb2是为DB2 Express C建立的数据源怎样获取DB2 Express C建立的数据源?我要远程连接db2数据库
      

  3.   

    问题解决了,改用db2_connect连接