pgsql选定库连接串
pgsql的数据库连接串和mysql的有点类似,但是一些细节方面还是存在差异的。
链接方式除了在query的时候,链接标识符和sql语句位置对调了之外,在连接串也有差异。其他的结果集操作基本上和mysql一致。
以下代码是先访问一个库获取表中的另外一个库的连接串,然后链接另外一个库进行sql查询操作
<?php
$accountLink = 'host=IP地址 port=5432 user=postgres password=密码 dbname=账号库';
$serverName = '公共服务器';
//执行的查询sql
$sql = "SELECT * FROM rank;";
$row = getGameQuery($accountLink, $serverName, $sql);
echo json_encode($row);
/**
* 获得accounts数据库表中的链接后,返回指定sql的结果列
* @param string $accountLink
* @param string $server_name
* @param string $sql
* @return $row
*/
function getGameQuery($accountLink, $server_name, $sql){
//链接账号库
$accountsConn = pg_connect($accountLink);
// 获取指定db的连接
$accountSql = "select dbip,dbport,dbname,dbpwd,serverid,game_dbname from server_list where servername = '$server_name'";
//exit($sql);链接对应数据库connect
$res = pg_query($accountsConn, $accountSql);
//获取对应的服务器名字对应的连接配置
$row = pg_fetch_row($res);
if(empty($row)){
return false;
}
$linkString = "host=$row[0] port=$row[1] user=$row[2] password=$row[3] dbname=$row[5]";
//exit($linkString);
$conn = pg_connect($linkString);
$res = pg_query($conn, $sql);
$row = pg_fetch_array($res);
return $row;
}
pgsql是自从mysql被oracle收了之后,一个不错的替代产品。