»
游客:
注册
|
登录
|
搜索
|
统计
|
喜悦证交所
|
帮助
喜悦国际村
»
PHP高级编程
» 扩展PDO的问题,出现500错误,请问为什么?
[北京]代朋友公司招聘PHP高级程序员多名
上一主题
下一主题
标题:
[问题]
扩展PDO的问题,出现500错误,请问为什么?
x
新手上路
UID 100704
精华 0
积分 25
帖子 16
金钱 25 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-11-5
状态 离线
扩展PDO的问题,出现500错误,请问为什么?
首先说明下,在不扩展的情况下直接使用PDO类,一切正常。下面的代码是我使用单件模式扩展PDO的代码
DB.class.php
CODE:
[Copy to clipboard]
<?php
/*
* PDO扩展类
*
*/
class
DB
extends
PDO
{
//私有的静态变量,保存唯一的DB实例
private static
$instance
=
NULL
;
//数据库配置
private
$dsn
=
_DSN_
;
private
$db_user
=
_DB_USER_
;
private
$db_pass
=
_DB_PASS_
;
private
$options
= array(
parent
::
ATTR_PERSISTENT
=>
true
);
//建立持久连接
//
private
$fetch_mode
=
parent
::
FETCH_ASSOC
;
//私有的构造函数,防止用于外部直接实例化DB类
private function
__construct
() {
parent
::
__construct
(
$this
->
dsn
,
$this
->
db_user
,
$this
->
db_pass
,
$this
->
options
);
}
//获得实例的唯一入口
public static function
getInstance
() {
if (
self
::
$instance
===
NULL
) {
self
::
$instance
= new
DB
();
return
self
::
$instance
;
}
return
self
::
$instance
;
}
//设置fetch模式
public function
setFetchMode
(
$fetch_mode
) {
$this
->
fetch_mode
=
$fetch_mode
;
}
//
public function
query
(
$sql
) {
$stmt
=
parent
::
query
(
$sql
);
if(
$stmt
) {
$stmt
->
setFetchMode
(
$this
->
fetch_mode
);
}
return
$stmt
;
}
//析构函数
function
__destruct
() {
//
}
//克隆函数
function
__clone
() {
trigger_error
(
"不允许CLONE"
,
E_USER_ERROR
);
}
}
?>
然后我在别的文件中直接DB::getInstance()调用,出现500错误,经我测试,问题可能出现在构造函数中
百思不得其解
:Q
[
本帖最后由 x 于 2008-5-7 06:58 PM 编辑
]
2008-5-7 06:50 PM
#1
x
新手上路
UID 100704
精华 0
积分 25
帖子 16
金钱 25 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-11-5
状态 离线
[推荐阅读]
空间一年只40 域名免费送!!!
问题解决,构造函数设置成public就行了,但这样的话,还用单件模式也就没意思了.
为什么我不能使用私有的构造函数?
[
本帖最后由 x 于 2008-5-7 07:27 PM 编辑
]
2008-5-7 07:23 PM
#2
ctrlming
注册会员
UID 118391
精华 0
积分 107
帖子 271
金钱 101 喜悦币
威望 0
人脉 6
阅读权限 20
注册 2008-4-9
来自 北京
状态 离线
[推荐阅读]
哎,帖子又被删除了!!55
私有构造函数能实例化吗?我也是问一下。
楼下指点
2008-5-7 10:41 PM
#3
x
新手上路
UID 100704
精华 0
积分 25
帖子 16
金钱 25 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-11-5
状态 离线
[推荐阅读]
用户通行证接口设计,另附数据模板解析对象
回楼上,私有的构造函数,只有在类内部才能实例化,但是我发现PDO这个类有点问题,不知道为什么?我扩展自己的类,用私有构造函数没问题。但是就是扩展PDO,用私有构造就不行
2008-5-8 08:58 AM
#4
可打印版本
|
推荐给朋友
|
订阅主题
|
收藏主题
|
开通个人空间
论坛跳转 ...
技术论坛
> XML/HTML/CSS/Js
> 代码共享
> PHP高级编程
> 建站讨论
> 喜悦原创
> 开源程序论坛
> ECShop官方技术论坛
> LAMP进阶文章
> php基础编程
> 数据库技术
> linux技术
> Windows/软硬件
> JAVA/C/C++
非技术论坛
> 娱乐乐园
> 招聘&求职
> 跳蚤市场
> 联盟项目组
> 广告时间
> 站务问题
Powered by
Discuz!
6.1.0
© 2001-2010
Comsenz Inc.
Processed in 0.025426 second(s), 6 queries
(
冀ICP备05009913号
)
管理员:
sadly 邮箱/MSN: sadly@phpx.com QQ:824008
(长隐)
清除 Cookies
- -
Archiver
-
WAP