public function __construct($dbhost,$dbuser,$dbpassword,$dbname,$charset)
{
$this->_link = mysql_connect($dbhost,$dbuser,$dbpassword);  /*连接数据库*/
$this->_link or $this->errmsg('Can\'t connect to MySQL server!');  /*是否连接成功*/
if ($this->version() > '4.1') {                  /*检查数据库版本*/
$this->query('set names '.$charset);         /*设置数据库编码*/
}
mysql_select_db($dbname,$this->_link) or $this->errmsg('Can\'t select the database!');  /*打开数据库*/
}上面这是我的数据操作类中的构造方法。
include_once ('config.php');
$shopdb=new mysql($mydbhost, $mydbuser, $mydbpw, $mydbname,$mydbcharset);
$dededb=new mysql($dededbhost, $dededbuser, $dededbpw, $dededbname,$dededbcharset);当我有时候需要调用第一个对象去操作的时候,它连接的是第二个对象的数据库,导致错误。 然后所可以分别使用 mysql_connect 和 mysql_pconnect 创建连接,不过这样只能创建两个。。4 mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] ) 的bool new_link 参数为1时建立新连接:
link1 = mysql_connect($host, $user, $pwd); 
link2 = mysql_connect($host, $user, $pwd, 1);
最后翻看手册,发现这个东西,但不知道如何去用, 在构造方法中判断传入的参数值来选择连接哪个??貌似好像不行,如果我一个页面需要从A数据库的表中查询数据插入到B数据库中的表中,那该怎么弄??  不太明白怎么弄了, 还望各位能够给个思路或者打扰你几分钟给解答下。谢谢。。

解决方案 »

  1.   

    同时操作两个库(两个库中的表关联操作)和同时操作两个连接对象是不一样的通常后者应用于数据库来自不同的数据库服务器,或虽来自同一数据库服务器但属于不同的用户
    这时由于连接参数不同,所以连接也就不同
    如果服务器支持的话,你也可以使用 mysqli 系列函数,绝没有你遇到的困惑对于前者,只需在表名前冠以数据库名(库.表.字段)就可以跨库操作了。当然你必须对参与操作的库有相应的权限