常规方式
常规方式就是按部就班的读取文件了.其余的话和上述方案一致.
// 读取配置文件内容
PHP解析XML
上述两种读取文件,其实都是为了PHP解析XML来做准备的.关于PHP解析XML的方式的博客有很多.方式也有很多,像simplexml,XMLReader,DOM啦等等.但是对于比较小型的xml配置文件,simplexml就足够了.
配置文件
!-- 为防止出现意外,请按照此标准顺序书写.其实也无所谓了 --
hostlocalhost/host
userroot/user
dbtest/db
解析
php/**
* 作为解析XML配置文件必备工具
*/class XMLUtil {
public static $dbconfigpath = "./db.config.xml"; ? ?public static function getDBConfiguration() {
$dbconfig = array (); ? ? ? ?try { ? ? ? ? ? ?// 读取配置文件内容
$handle = fopen(self::$dbconfigpath, "r"); ? ? ? ? ? ?$content = fread($handle, filesize(self::$dbconfigpath)); ? ? ? ? ? ?// 获取xml文档根节点,进而获取相关的数据库信息
$mysql = simplexml_load_string($content); ? ? ? ? ? ?// 将获取到的xml节点信息赋值给关联数组,方便此时此刻呢的方法调用
$dbconfig['host'] = $mysql-host; ? ? ? ? ? ?$dbconfig['user'] = $mysql-user; ? ? ? ? ? ?$dbconfig['password'] = $mysql-password; ? ? ? ? ? ?$dbconfig['db'] = $mysql-db; ? ? ? ? ? ?$dbconfig['port'] = $mysql-port; ? ? ? ? ? ?// 将配置信息以关联数组的形式返回
return $dbconfig;
} catch ( Exception $e ) { ? ? ? ? ? ?throw new RuntimeException ( "mark读取数据库配置文件信息出错!/markbr /" );
} ? ? ? ?return $dbconfig;
}
数据库连接池
对于PHP程序而言,优化永无止境.而数据库连接池就在一定程度上起到了优化的作用.其使得对用户的每一个请求而言,无需每次都像数据库申请链接资源.而是通过已存在的数据库连接池中的链接来返回,从时间上,效率上,都是一个大大的提升.
于是,这里简单的模拟了一下数据库连接池的实现.核心在于维护一个"池".
从池子中取,用毕,归还给池子.
php/**x
* ?PHP中的数据库 工具类设计
* ?郭璞
*
}else {
require './utils.php';
} ? ? ? ?// 初始化 配置文件信息
$this-dbconfig = XMLUtil::getDBConfiguration (); ? ? ? ?// 准备好数据库连接池"伪队列"
$this-poolsize = $poolsize;
$this-dbpool = array (); ? ? ? ?for($index = 1; $index = $this-poolsize; $index ++) {
$conn = mysqli_connect ( $this-dbconfig ['host'], $this-dbconfig ['user'], $this-dbconfig ['password'], $this-dbconfig ['db'] ) or die ( "mark连接数据库失败!/markbr /" );
array_push ( $this-dbpool, $conn );
} ? ?/**
* 从数据库连接池中获取一个数据库链接资源
* @throws ErrorException
* @return mixed
*/
public function getConn() { ? ? ? ?if (count ( $this-dbpool ) = 0) { ? ? ? ? ? ?throw new ErrorException ( "mark数据库连接池中已无链接资源,请稍后重试!/mark" );
} else { ? ? ? ? ? ?return array_pop ( $this-dbpool );
* 将用完的数据库链接资源放回到数据库连接池
* @param unknown $conn
public function release($conn) { ? ? ? ?if (count ( $this-dbpool ) = $this-poolsize) { ? ? ? ? ? ?throw new ErrorException ( "mark数据库连接池已满/markbr /" );
} else {
首先确定mysql 数据库是否启动
然后确定你的 用户名密码是否正确
现在使用PDO链接数据库的较多
连接是通过创建 PDO 基类的实例而建立的.不管使用哪种驱动程序,都是用 PDO 类名.构造函数接收用于指定数据库源(所谓的 DSN)以及可能还包括用户名和密码(如果有的话)的参数.
连接到 MySQL
php
$dbh?=?new?PDO('mysql:host=localhost;dbname=test',?$user,?$pass);
如果有任何连接错误,将抛出一个 PDOException 异常对象.如果想处理错误状态,可以捕获异常,或者选择留给通过 set_exception_handler() 设置的应用程序全局异常处理程序.
处理连接错误
try?{
foreach($dbh-query('SELECT?*?from?FOO')?as?$row)?{
print_r($row);
$dbh?=?null;
}?catch?(PDOException?$e)?{
print?"Error!:?"?.?$e-getMessage()?.?"br/";
die();
如果应用程序不在 PDO 构造函数中捕获异常,zend 引擎采取的默认动作是结束脚本并显示一个回溯跟踪,此回溯跟踪可能泄漏完整的数据库连接细节,包括用户名和密码.所以呢有责任去显式(通过 catch 语句)或隐式(通过 set_exception_handler() )地捕获异常.
连接数据成功后,返回一个 PDO 类的实例给脚本,此连接在 PDO 对象的生存周期中保持活动.要想关闭连接,需要销毁对象以确保所有剩余到它的引用都被删除,可以赋一个 NULL 值给对象变量.如果不明确地这么做,PHP 在脚本结束时会自动关闭连接.
关闭一个连接
//?在此使用连接
//?现在运行完成,在此关闭连接
很多 web 应用程序通过使用到数据库服务的持久连接获得好处.持久连接在脚本结束后不会被关闭,且被缓存,当另一个使用相同凭证的脚本连接请求时被重用.持久连接缓存可以避免每次脚本需要与数据库回话时建立一个新连接的开销,从而让 web 应用程序更快.
PHP连接数据库之PHP连接MYSQL数据库代码
php?
$mysql_server_name='localhost';?
//改成自己的mysql数据库服务器?
$mysql_username='root';?
//改成自己的mysql数据库用户名?
//改成自己的mysql数据库密码?
$mysql_database='mycounter';
//改成自己的mysql数据库名?
$conn=mysql_connect($mysql_server_name,
$mysql_username,$mysql_password,
$mysql_database);?
$sql='CREATE?DATABASE?mycounter?
DEFAULT?CHARACTER?SET?gbk?COLLATE?gbk_chinese_ci;?
';?
mysql_query($sql);?
$sql='CREATE?TABLE?+counter+?
UNSIGNED?NOT?NULL?DEFAULT?0,PRIMARY?KEY?
(?+id+?)?)?TYPE?=?innodb;';?
mysql_select_db($mysql_database,$conn);?
$result=mysql_query($sql);?
//echo?$sql;?
mysql_close($conn);?
echo?"Hello!数据库mycounter已经成功建立!";?
PHP连接数据库之PHP连接ACCESS数据库代码方法
$conn?=?new?com("ADODB.Connection");?
$connstr?=?"DRIVER={Microsoft
Access?Driver?(*.mdb)};?
DBQ=".?realpath("data/db.mdb");?
$conn-Open($connstr);?
$rs?=?new?com("ADODB.RecordSet");?
$rs-Open("select?*
from?szd_t",$conn,1,1);?
while(!?$rs-eof)?{?
$f?=?$rs-Fields(1);?
echo?$f-value;?
$rs-MoveNext();?
}?
以上就是土嘎嘎小编为大家整理的php数据库连接全局相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!