编写mysql的工具_自己编写的数据库工具类
/**
* 數(shù)據(jù)庫(kù)工具類
* 1.連接數(shù)據(jù)庫(kù)
* 2.執(zhí)行增刪改查功能功能并報(bào)錯(cuò)
* 3.沒(méi)有參數(shù)傳遞是則使用默認(rèn)信息連接
*/
class mysql {
private $link = null;?????? //記錄連接資源
private $host;
private $port;
private $user;
private $pass;
private $charset;
private $dbname;??????????? //設(shè)定6個(gè)私有屬性,以存儲(chǔ)連接屬性
//單例化1,設(shè)定私有靜態(tài)屬性,存儲(chǔ)該單例化對(duì)象
private static $instance = null;
//單例化2,將構(gòu)造方法私有化
private function __construct($conf){
//保留屬性,并設(shè)定默認(rèn)值
$this->host=$conf['host'] ?$conf['host']:"localhost";
$this->port=$conf['port']?$conf['port']:"3306";
$this->user=$conf['user'] ?$conf['user']:"root";
$this->pass=$conf['pass'] ?$conf['pass']:"zhangHD";
$this->charset=$conf['charset'] ?$conf['charset']:"utf8";
$this->dbname=$conf['dbname'] ?$conf['dbname']:"mvc";
$this->connect();
}
//單例化3,設(shè)定靜態(tài)方法并判斷是否需要new對(duì)象,并返回
static function getdb($conf){
if(empty(self::$instance)){
self::$instance = new self($conf);
}
return self::$instance;
}
//更改數(shù)據(jù)庫(kù)
function select_database($db){
$this->query("use $db");
$this->dbname=$db;
}
//更改連接的字符集
function select_charset($charset){
$this->query("set names $charset");
$this->charset = $charset;
}
//關(guān)閉連接
function close(){
mysql_close($this->link);
}
//該方法專門處理SQL語(yǔ)句,執(zhí)行成功則返回,失敗則結(jié)束
private? function query($sql){
$result = mysql_query($sql,$this->link);
if($result === false){
echo "
發(fā)生錯(cuò)誤了,請(qǐng)參考:";
echo "
錯(cuò)誤語(yǔ)句:".$sql;
echo "
錯(cuò)誤提示:".mysql_error();
echo "
錯(cuò)誤代號(hào):".mysql_errno();
die();????????????? //失敗即終止程序
}else {
return $result;
}
}
//該方法用于執(zhí)行一條沒(méi)有返回結(jié)果的增刪改查語(yǔ)句
function exec ($sql){
$result = $this->query($sql);
return true;
}
//該方法可以執(zhí)行一條返回多行數(shù)據(jù)的select語(yǔ)句,并將數(shù)據(jù)以“二維數(shù)組”的形式返回
function getrows($sql){
$result = $this->query($sql);
//返回二維數(shù)組。此時(shí)$result是“結(jié)果集”
while($res = mysql_fetch_assoc($result)){
$arr[]=$res;
}
return $arr;
}
//返回一行多列數(shù)據(jù)
function getonerow($sql){
$result = $this->query($sql);
//返回一組數(shù)據(jù)。此時(shí)$result是“結(jié)果集”
if($rec = mysql_fetch_assoc($result)){
return $rec;
}
return array();
}
//返回一行多列數(shù)據(jù)
function getonedate($sql){
$result = $this->query($sql);
//返回一組數(shù)據(jù)。此時(shí)$result是“結(jié)果集”
if($rec = mysql_fetch_row($result)){
return $rec[0];//如果沒(méi)有數(shù)據(jù),則返回該行
}
return false;//表示沒(méi)有數(shù)據(jù)
}
//將連接資源保存到本地硬盤中
function __sleep(){
return array('host','port','user','pass','charset','dbname');
}
//調(diào)取本地存儲(chǔ)的連接資源再次連接數(shù)據(jù)庫(kù)系統(tǒng)
function __wakeup(){
$this->connect();
}
//連接數(shù)據(jù)庫(kù)并將連接資源存儲(chǔ)起來(lái)
private? function connect(){
$this->link = @mysql_connect("{$this->host}:{$this->port}","{$this->user}","{$this->pass}") or die ('數(shù)據(jù)庫(kù)服務(wù)器連接失敗!!!');
$this->select_charset($this->charset);
$this->select_database($this->dbname);
}
}
總結(jié)
以上是生活随笔為你收集整理的编写mysql的工具_自己编写的数据库工具类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 日本向苹果谷歌施加压力,认为两家公司的应
- 下一篇: nodejs mysql 注入_node