| | | 使用PHPLIB访问多个数据库 | | 2001-03-31·
·QQ新人类··yesky
| 上一页 1 2 3 4 5 6 下一页 要改变代码的话,有几种不同的方法。我们要选择一种对PHPLIB的影响最小,而且可让我们在需要分析问题的时候,能够显示数据库连接状态的方法。我们需要在PHPLIB外保存连接id和数据库的名字。只要在common.php加入:
<?php
$db_connection = 0; // 数据库连接的id $db_database = ""; // 当前数据库的状态
?>
下一步,我们要对PHPLIB作修改,以便在这些变量中存储连接id和数据库的名字。在其它的代码中,你可以设置和使用同样的变量名。在分析问题时,如果你需要知道现在使用哪个数据库,只要在页面中插入以下的代码:
<?php
Print("
db_database: " . $db_database . " ");
?>
我们怎样才能让connect()使用这些新变量呢?我们可以在顶部加入一行:
<?php
{ globals $db_connect, $db_database; /* Handle defaults */
?>
通过这些代码,新变量就可被connect()访问到
在定义了$db_database后,加入: <?php
function db_connect($db_connect_host="", $db_connect_user="",$db_connect_pass="") { globals $db_connect; if(!empty($db_connect_host)) { $db_connect = mysql_pconnect($db_connect_host, $db_connect_user, $db_connect_pass); } return($db_connect); }
function db_database($db_database_new="") { globals $db_database; if(!empty($db_database_new)) { $db_database = @mysql_select_db($db_database_new, db_connect()); } return($db_database); }
?>
只要定义这些公共的函数一次,你就可以在不同的地方使用这些公共的变量,而不需要加入global申明。以下就是使用上面db函数的公共函数:
<?php
function connect($Database = "", $Host = "", $User = "", $Password = "") { /* 处理默认连接 */ if ("" == $Database) { $Database = $this->Database; } if ("" == $Host) { $Host = $this->Host; } if ("" == $User) { $User = $this->User; } if ("" == $Password) { $Password = $this->Password; } /* 建立连接,选择数据库 */ if ( 0 == db_connect()) { $this->Link_ID = db_connect($Host, $User, $Password); if (!$this->Link_ID) { $this->halt("pconnect($Host, $User, \$Password) failed."); return 0; } } if (0 != db_connect()) { if($Database != db_database()) { $this->Database = db_database($Database)) if(empty($this->Database)) { $this->halt("cannot use database " . $this->Database); return 0; } } } return $this->Link_ID; }
?>
上一页 1 2 3 4 5 6 下一页 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|