PHP连接数据库

1. 创建连接工厂

<?php

require_once ('inf\IConnectionFactory.php');

class ConnectionFactoryImp implements IConnectionFactory {
	
	function __construct() {
	}
	/**
	 * @param unknown_type $url
	 * @param unknown_type $userName
	 * @param unknown_type $passWord
	 */
	public function getConnection($url, $userName, $passWord) {
		$conn = mysql_connect ( $url, $userName, $passWord ) or die ( "无法连接MySQL数据库服务器!" );
		return $conn;
	}

}

?>

 

2. 创建Session工厂

<?php

require_once ('inf\ISessionFactory.php');

class SessionFactory implements ISessionFactory {
	/**
	 * 
	 */
	public function openSession() {
		$session=new Session();
		return $session;
	}


}

?>

 

3. 创建Session

<?php
include 'ConnectionFactoryImp.php';
?>
<?php

include 'XMLUtilImp.php';
?>

<?php
require_once ('inf\ISesson.php');

class Session implements ISesson {
	
	public function connectDB() {
		$cf = new ConnectionFactoryImp ();
		$xmlUtil = new XMLUtilImp ();
		$vo = $xmlUtil->XML2VO ( "dbConfig.xml" );
		$con = $cf->getConnection ( $vo->getUrl (), $vo->getUserName (), $vo->getPassWord () );
		$db = mysql_select_db ( $vo->getDataBaseName () ) or die ( "无法连接数据库!" );
		return $con;
	}
	
	/**
	 * @param unknown_type $sql
	 */
	public function excuteSQL($sql) {
		$result = mysql_query ( $sql ); //查询本页数据
		return $result;
	}
	
	public function closeConnection($con) {
		mysql_close ( $con );
	}

}
?>

 

4. 调用

 

<?php
include 'impl/Session.php';
?>
<?php
$session = new Session ();
$con = $session->connectDB ();
$result = $session->excuteSQL ( "select * from user" );

echo "<table border=1 cellpadding=10><tr>";
for($i = 0; $i < mysql_num_fields ( $result ); $i ++) {
	echo "<th>" . mysql_field_name ( $result, $i ) . "</th>";
}
echo "</tr>";
while ( $row = mysql_fetch_row ( $result ) ) {
	echo "<tr>";
	for($i = 0; $i < mysql_num_fields ( $result ); $i ++) {
		echo "<td>" . $row [$i] . "</td>";
	}
	echo "</tr>";
}
echo "</table>";
mysql_free_result ( $result );
$session->closeConnection ( $con ); //断开连接并释放资源
?>

 

5. 用到的公共类

<?php
require_once ('vo\DataBaseVO.php');
require_once ('inf\IXMLUtil.php');

class XMLUtilImp implements IXMLUtil {
	/**
	 * @param unknown_type $fileName
	 */
	public function XML2VO($fileName) {
		$xmlDoc = new DOMDocument ();
		$xmlDoc->load ($fileName);
		$x = $xmlDoc->documentElement;
		$vo=new DataBaseVO();
		foreach ( $x->childNodes as $item ) {
			print $item->nodeName . " = " . $item->nodeValue . "<br />";
			if($item->nodeName=="url"){
				$vo->setUrl($item->nodeValue);
			}else if($item->nodeName=="userName"){
				$vo->setUserName($item->nodeValue);
			}else if($item->nodeName=="passWord"){
				$vo->setPassWord($item->nodeValue);
			}else if($item->nodeName=="dataBaseName"){
				$vo->setDataBaseName($item->nodeValue);
			}
		}
			return $vo;
	}

}
?>

 

6. VO

<?php

class DataBaseVO {
	var $url = "";
	var $userName = "";
	var $passWord = "";
	var $dataBaseName="";
	/**
	 * @return the $url
	 */
	/**
	 * @return the $dataBaseName
	 */
	public function getDataBaseName() {
		return $this->dataBaseName;
	}

	/**
	 * @param $dataBaseName the $dataBaseName to set
	 */
	public function setDataBaseName($dataBaseName) {
		$this->dataBaseName = $dataBaseName;
	}

	public function getUrl() {
		return $this->url;
	}
	
	/**
	 * @return the $userName
	 */
	public function getUserName() {
		return $this->userName;
	}
	
	/**
	 * @return the $passWord
	 */
	public function getPassWord() {
		return $this->passWord;
	}
	
	/**
	 * @param $url the $url to set
	 */
	public function setUrl($url) {
		$this->url = $url;
	}
	
	/**
	 * @param $userName the $userName to set
	 */
	public function setUserName($userName) {
		$this->userName = $userName;
	}
	
	/**
	 * @param $passWord the $passWord to set
	 */
	public function setPassWord($passWord) {
		$this->passWord = $passWord;
	}

}

?>

 7. 配置的xml

<?xml version="1.0" encoding="UTF-8"?>
<database>
	<url>127.0.0.1</url>
	<userName>root</userName>
	<passWord>123</passWord>
	<dataBaseName>test</dataBaseName>
</database>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值