php 使用pdo连接postgresql
2013-01-16 14:57
597 查看
有关pdo的使用可以参考:
http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/08/12/1797753.html
1、连接数据库方法
2、使用示例
注意:使用postgresql时,lastInsertId()返回false,无法用
参考解决办法:
http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/08/12/1797753.html
1、连接数据库方法
function _conn($t) { //static $db; if (is_null ( $db )) { global $Config; $dsn = $Config ['server'] [$t] ['type'] . ":dbname=" . $Config ['server'] [$t] ['dbname'] . ";host=" . $Config ['server'] [$t] ['host']; //postgresql 的type为pgsql //echo $dsn; try { $db = new PDO ( $dsn, $Config ['server'] [$t] ['user'], $Config ['server'] [$t] ['passwd'] ); } catch ( PDOException $ex ) { print_r ( $ex ); return false; } } return $db; }
2、使用示例
//查询user表用户信息 $sql = sprintf ( "SELECT * FROM %s WHERE passport = '%s' and passwd = '%s';", "user", $passport, sha1 ( $passwd ) ); $info = $db->query ( $sql )->fetch ( PDO::FETCH_ASSOC ); //如果是insert或update语句,不能使用query,可以使用$db->exec($sql);
注意:使用postgresql时,lastInsertId()返回false,无法用
参考解决办法:
function pgsqlLastInsertId($sqlQuery, $pdoObject) { // Checks if query is an insert and gets table name if( preg_match("/^INSERT[\t\n ]+INTO[\t\n ]+([a-z0-9\_\-]+)/is", $sqlQuery, $tablename) ) { // Gets this table's last sequence value $query = "SELECT currval('" . $tablename[1] . "_id_seq') AS last_value"; $temp_q_id = $pdoObject->prepare($query);//$tablename[1]替换为你的表名 $temp_q_id->execute(); if($temp_q_id) { $temp_result = $temp_q_id->fetch(PDO::FETCH_ASSOC); return ( $temp_result ) ? $temp_result['last_value'] : false; } }return false; } $pdoObject = new PDO('pgsql:host=localhost;dbname=mydb', 'user', 'pass'); $sql = 'INSERT INTO table (column) VALUES (\'some_value\');'; $result = $pdoObject->prepare($sql); $result->execute(); //至此,可以成功的取到上一条插入数据的id了。 echo 'Last Insert ID: ' . pgsqlLastInsertId($sql, $pdoObject);
相关文章推荐
- php使用PDO扩展连接PostgreSQL对象关系数据库
- php使用PDO连接操作数据库
- PHP使用PDO连接数据库一
- php使用PDO连接数据库
- PHP使用PDO连接ACCESS数据库
- php使用pdo连接并查询sql数据库的方法
- ThinkPHP3.0使用pdo方式连接sqlserver 2000、mssql 2000的配置,直接上配置文件,php版本是php5.2,服务器环境是ComsenzEXP
- PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
- php使用pdo连接报错Connection failed SQLSTATE的解决方法
- php使用pdo数据库连接失败
- 关于php中使用odbc或者pdo连接sqlserver时如果查询条件中存在中文会导致查询失败的问题
- 一个关于php使用pdo方式进行数据库连接和处理的类
- PHP使用PDO连接SQLITE3
- php使用pdo连接sqlite3的配置示例
- LINUX下PHP使用PDO访问MYSQL的连接设置注意事项
- ThinkPHP使用PDO方式连接数据库之PDO的介绍与安装,开发环境是PHP5
- wampserver xampp下PHP使用PDO 支持postgresql
- 链接MDB,PHP使用PDO连接Access的方法
- php使用pdo连接mssql server数据库实例
- php使用pdo连接sqlserver示例分享