php中连接数据库,使用单例模式遇到的问题
当然是重新连接了,你是跳转不是包含。
成都创新互联公司专注于企业全网营销推广、网站重做改版、鸡西梨树网站定制设计、自适应品牌网站建设、H5技术、商城网站定制开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为鸡西梨树等各大城市提供网站开发制作服务。
跳转两者之间共享值要专门的传值操作,cookie\
session\
POST/GET
\静态输出
单例模式 数据库 php 怎么用
搭建好php开发环境,这个就不多讲了,能找单例模式的应该有一定的php基础
2
新建一个database.php文件存放数据库信息
?php
$db = array(
'host'='localhost',//地址
'user'='root',//数据库用户名
'password'='root',//数据库密码
'database'='ceshi',//数据库名
)
?
3
新建Mysql.class.php编写数据库连接类操作类添加需要的属性和构造方法
构造函数加载数据库配置文件连接数据库
?php
class db {
public $conn;
public static $sql;
public static $instance=null;
private function __construct(){
require_once('database.php');
$this-conn = mysqli_connect($db['host'],$db['user'],$db['password']);
if(!mysqli_select_db($this-conn,$db['database'])){
echo "失败";
};
mysqli_query($this-conn,'set names utf8');
}
}
?这样试试吧如果你对php这类有兴趣的话,可以和我一样在后盾人经常看看教材,自己多看几遍,慢慢的以后就明白了,希望能帮到你,给个采纳吧谢谢
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;
}
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 第二次再获取就已经有了 不用重新连接了
单利模式好处就是保存变量 他是用static保存的 所以 退出函数 变量不会释放
关于这个问题,差不多就是这个样子的了,你如果不明白,可以自己去后盾瞅瞅,我这些都是在后盾上学的,有空可以去看一下,就算不喜欢也没关系啊,何乐而不为呢?
PHP设计模式之单例模式
单例模式
:使得类的一个对象成为系统中的唯一实例.
PHP中使用单例模式最常见的就是数据库操作了。避免在系统中有多个连接数据库的操作,浪费系统资源的现象,就可以使用单例模式。每次对数据库操作都使用一个实例。
简单示例
class
AClass
{
//
用来存储自己实例
public
static
$instance;
//
私有化构造函数,防止外界实例化对象
private
function
__construct()
{}
//
私有化克隆函数,防止外界克隆对象
private
function
__clone()
{}
//
静态方法,单例访问统一入口
public
static
function
getInstance()
{
if
(!(self::$instance
instanceof
self)){
self::$instance
=
new
self();
}
return
self::$instance;
}
//
test
public
function
test()
{
return
"done";
}
//
私有化克隆函数,防止外界克隆对象
private
function
__clone()
{}
}
class
BClass
extends
AClass{
}
//
获取实例
$aclass
=
AClass::getInstance();
$bclass
=
BClass::getInstance();
//
调用方法
echo
$aclass-test();
对一些比较大型的应用来说,可能连接多个数据库,那么不同的数据库公用一个对象可能会产生问题,比如连接句柄的分配等,我们可以通过给$instance变成数组,通过不同的参数来控制
简单示例
class
DB
{
//
用来存储自己实例
public
static
$instance
=
array();
public
$conn;
//
私有化构造函数,防止外界实例化对象
private
function
__construct($host,
$username,
$password,
$dbname,
$port)
{
$this-conn
=
new
mysqli($host,
$username,
$password,
$dbname,
$port);
}
//
静态方法,单例访问统一入口
public
static
function
getInstance($host,
$username,
$password,
$dbname,
$port)
{
$key
=
$host.":".$port;
if
(!(self::$instance[$key]
instanceof
self)){
self::$instance[$key]
=
new
self($host,
$username,
$password,
$dbname,
$port);#实例化
}
return
self::$instance[$key];
}
//query
public
function
query($ql)
{
return
$this-conn-query($sql);
}
//
私有化克隆函数,防止外界克隆对象
private
function
__clone()
{}
//释放资源
public
function
__destruct(){
$this-conn-close();
}
}
网站名称:php数据库连接单例 php数据库连接函数
文章起源:http://lswzjz.com/article/doocdpp.html