簡單的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執行失敗<br/>';
79 echo '錯誤的SQL為:',$sql,'<br/>';
80 echo '錯誤代碼為:',mysql_errno($this->_link),'<br/>';
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執行失敗<br/>';
100 echo '錯誤的SQL為:',$sql,'<br/>';
101 echo '錯誤代碼為:',mysql_errno($this->_link),'<br/>';
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
mysql中數據類型的簡單問題
就是說這個字段是整數,長度是10個字符。
mysql ,創建表的簡單問題
明顯錯了,沒有1,2,這樣的數據類型 ,還有最後一項不用逗號