简单的MySQLDB类,简单MySQLDB类
1 php
2 header('Content-Type:text/html; charset=utf-8'
);
3 error_reporting(
E_ALL ^
E_DEPRECATED);
4 //数据库操作类
5 class MySQLDB{
6
7 //属性--必要的信息
8 private $_host;
//主机
9 private $_port;
//端口
10 private $_user;
//用户名
11 private $_pass;
//密码
12 private $_charset;
//字符集
13 private $_dbname;
//默认数据库
14
15 //属性--运行时生成
16 public $_link;
//mysql link 资源
17
18 private static $_instance;
19 public static function getInstance(
$params=
array()){
20 if(!self::
$_instance instanceof self){
21 self::
$_instance =
new self(
$params);
22 }
23 return self::
$_instance;
24 }
25 private function __clone(){}
26
27 /*
28 * 构造方法
29 * @param $param=array() array 关联数组 需要六个属性值
30 */
31 private function __construct(
$params=
array()){
32 //初始化属性
33 $this->_initParams(
$params);
34 //连接数据库服务器
35 $this->
_connect();
36 //设定字符集
37 $this->
_setCharset();
38 //选择默认数据
39 $this->
_selectDB();
40 }
41
42 /*
43 * 初始化数据库服务器参数
44 */
45 private function _initParams(
$params){
46 $this->_host =
isset(
$params['host'])?
$params['host']:'127.0.0.1';
//本机
47 $this->_port =
isset(
$params['port'])?
$params['port']:'3306';
//3306
48 $this->_user =
isset(
$params['user'])?
$params['user']:'';
//匿名用户
49 $this->_pass =
isset(
$params['pass'])?
$params['pass']:'';
//没有密码
50 $this->_charset =
isset(
$params['charset'])?
$params['charset']:'utf8';
//utf8
51 $this->_dbname =
isset(
$params['dbname'])?
$params['dbname']:'';
//表示不用选择默认数据库
52 }
53
54
55 /*
56 * 连接数据库服务器
57 */
58 private function _connect(){
59 //127.0.0.1:3306
60 if(
$link =
mysql_connect("
$this->_host:
$this->_port",
$this->_user,
$this->
_pass)){
61 //成功
62 $this->_link =
$link;
63 }
else{
64 //失败,强制脚本结束,提示错误信息
65 die("-_-!,连接数据库服务器失败,请确定连接选项"
);
66 }
67 }
68
69 /*
70 * 设定指定字符集
71 */
72 private function _setCharset(){
73 $sql = "set names
$this->_charset"
;
74 if(
mysql_query(
$sql,
$this->
_link)){
75 //成功
76 }
else{
77 //执行失败给出错误信息
78 echo '-_-!SQL执行失败
'
;
79 echo '错误的SQL为:',
$sql,'
'
;
80 echo '错误代码为:',
mysql_errno(
$this->_link),'
'
;
81 echo '错误信息为:',
mysql_error(
$this->
_link);
82 die;
83 }
84 }
85
86 /*
87 * 选择默认数据库
88 * 如果没有指定,则不选择
89 */
90 private function _selectDB(){
91 //判断是否需要选择默认数据库,表示不需要,防止为0
92 if(
$this->_dbname !== ''
){
93 //不为空,才选择数据库
94 $sql = "use `
$this->_dbname`"
;
95 if(
mysql_query(
$sql,
$this->
_link)){
96 //成功
97 }
else{
98 //执行失败给出错误信息
99 echo '-_-!SQL执行失败
'
;
100 echo '错误的SQL为:',
$sql,'
'
;
101 echo '错误代码为:',
mysql_errno(
$this->_link),'
'
;
102 echo '错误信息为:',
mysql_error(
$this->
_link);
103 die;
104 }
105 }
106 }
107
108
109
110 /**
111 * 序列化时执行的方法
112 * @return array每个数组元素为一个需要被序列化的属性名
113 *
114 */
115 public function __sleep(){
116 return array('_host','_post','_user','_pass','_charset','_dbname'
);
117 }
118
119 /*
120 * 反序列化时被执行
121 * 重新初始化工作
122 */
123 public function __wakeup(){
124 //连接数据库服务器
125 $this->
_connect();
126 //设定连接字符集
127 $this->
_setCharset();
128 //选择默认数据库
129 $this->
_selectDB();
130 }
131 }
View Code
就是说这个字段是整数,长度是10个字符。
明显错了,没有1,2,这样的数据类型 ,还有最后一项不用逗号