php单例数据库连接 php数据库

PHP网站怎么连接到数据库?常规方式
常规方式就是按部就班的读取文件了 。其余的话和上述方案一致 。
// 读取配置文件内容
$handle = fopen("filepath", "r");$content = fread($handle, filesize("filepath"));123
PHP解析XML
上述两种读取文件,其实都是为了PHP解析XML来做准备的 。关于PHP解析XML的方式的博客有很多 。方式也有很多,像simplexml,XMLReader,DOM啦等等 。但是对于比较小型的xml配置文件,simplexml就足够了 。
配置文件
?xml version="1.0" encoding="UTF-8" ?mysql
!-- 为防止出现意外,请按照此标准顺序书写.其实也无所谓了 --
hostlocalhost/host
userroot/user
password123456/password
dbtest/db
port3306/port/mysql12345678910
解析
?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;
}
}1234567891011121314151617181920212223242526272829
数据库连接池
对于PHP程序而言,优化永无止境 。而数据库连接池就在一定程度上起到了优化的作用 。其使得对用户的每一个请求而言,无需每次都像数据库申请链接资源 。而是通过已存在的数据库连接池中的链接来返回,从时间上,效率上,都是一个大大的提升 。
于是,这里简单的模拟了一下数据库连接池的实现 。核心在于维护一个“池” 。
从池子中取 , 用毕,归还给池子 。
?php/**x
*PHP中的数据库 工具类设计
*郭璞
*2016年12月23日
*
**/class DbHelper {private $dbconfig;private $dbpool;public $poolsize;public function __construct($poolsize = 20) {if (! file_exists ( "./utils.php" )) {throw new RuntimeException ( "markutils.php文件丢失,无法进行配置文件的初始化操作!/markbr /" );
}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
* @throws ErrorException
*/
public function release($conn) {if (count ( $this-dbpool ) = $this-poolsize) {throw new ErrorException ( "mark数据库连接池已满/markbr /" );
} else {
array_push ( $this-dbpool, $conn );
}
}
}
php pdo单例模式怎么同时连接两个数据库PHP pdo单例模式连接数据库
';
if ( self::$pdo == null )
{
$host = '115.29.223.160';
$user = 'zhangwei';
$pwd = 'zhang111';
$dbname = 'wangzhan';
$dsn = "mysql:host=$host;dbname=$dbname;port=3306";
$pdo = new PDO ( $dsn, $user, $pwd );
$pdo-query('set names utf8;');
$pdo-setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$pdo = $pdo;
}
return self::$pdo;
}
【php单例数据库连接 php数据库】public static function getStmt ( $sql )
{
$pdo = self::getPdo ();
return $pdo - prepare( $sql );
}
}
$sql = "INSERT INTO testss (wef,wef1) VALUES(?,?)";
$stmt = Db::getStmt ( $sql );
$stmt = Db::getStmt ( $sql );
?
输出结果
NULL
object(PDO)#1 (0) { }
第一次null第二次再获取就已经有php单例数据库连接了 不用重新连接了
单利模式好处就是保存变量他是用static保存的 所以 退出函数 变量不会释放
关于这个问题,差不多就是这个样子的了,你如果不明白,可以自己去后盾瞅瞅,php单例数据库连接我这些都是在后盾上学的 , 有空可以去看一下,就算不喜欢也没关系?。卫侄晃兀?
几种常用PHP连接数据库的代码示例PHP连接数据库之PHP连接MYSQL数据库代码
?php$mysql_server_name= localhost ;//改成自己的mysql数据库服务器$mysql_username= root ;//改成自己的mysql数据库用户名$mysql_password= ;//改成自己的mysql数据库密码$mysql_database= mycounter ;//改成自己的mysql数据库名$conn=mysql_connect($mysql_server_name $mysql_username $mysql_password $mysql_database);$sql= CREATE DATABASE mycounterDEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;;mysql_query($sql);$sql= CREATE TABLE `counter`(`id` INT( ) UNSIGNED NOT NULLAUTO_INCREMENT`count` INT( )UNSIGNED NOT NULL DEFAULTPRIMARY 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 ("ADODB Connection");$connstr = "DRIVER={Microsoft Access Driver (* mdb)}; DBQ="realpath("data/db mdb");$conn Open($connstr);$rs = new ("ADODB RecordSet");$rs Open("select * from szd_t" $conn );while(! $rs eof) {$f = $rs Fields( );echo $f value;$rs MoveNext();}?
PHP连接数据库之PHP连接MS SQL数据库代码方法
安装SQL服务器并添加PHP的MSSQL扩展
使用以下代码连接并测试
?php$myServer = localhost; //主机$myUser = sa; //用户名$myPass = password; //密码$myDB = Northwind; //MSSQL库名$s = @mssql_connect($myServer$myUser$myPass)or die(Couldnt connect to SQL Server on $myServer);$d = @mssql_select_db($myDB$s)or die(Couldnt open database $myDB);$query = SELECT TitleOfCourtesyFirstNameLastName AS Employee ;$query= FROM Employees ;$query= WHERECountry=USA AND Left(HomePhone) = ( );$result = mssql_query($query);$numRows = mssql_num_rows($result);echoh$numRowsRow($numRows ==? : s)Returned / h ;while($row = mssql_fetch_array($result)){echoli$row[Employee]/li;}?
PHP连接数据库之PHP连接Oracle数据库
PHP提供了两套函数与Oracle连接 分别是ORA_和OCI函数 其中ORA_函数略显陈旧 OCI函数更新据说更好一些 两者的使用语法几乎相差无几 你的PHP安装选项应该可以支持两者的使用
?if ($conn=Ora_Logon("user@TNSNAME" "password")){ echo "SUCCESS ! Connected to databasen";}else{echo "Failed : ( Could not connect to databasen";}Ora_Logoff($conn);phpinfo();?lishixinzhi/Article/program/PHP/201405/30761
关于php单例数据库连接和php数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读