標籤:
<?php
header(‘content-type:text/html;charset=utf-8‘);
//封裝mysql 串連資料庫php_mysql
//封裝mysql 串連資料庫php_mysqli
//封裝mysql 串連資料庫php_pdo
class db{
//三私一共
//私人的靜態屬性
private static $dbcon = false; //儲存資料庫連接對象
//私人的構造方法
private function __construct(){
//建立連結
$dbcon=mysql_connect(‘127.0.0.1‘,‘root‘,‘root‘);
//選擇資料庫
mysql_select_db(‘yii_back‘,$dbcon) or die(‘mysql connect error‘);
//設定字元集
mysql_query(‘set names utf8‘);
}
//私人的clone
private function __clone(){}
//共有的靜態方法
public static function getInstance(){
if(self::$dbcon == false){
self::$dbcon = new self;
}
return self::$dbcon;
}
/**
*執行sql語句
*@param $sql
*@return source
**/
public function query($sql){
//通過mysql_query來實現
$query = mysql_query($sql);
//返回執行結果
return $query;
}
/**
* 查詢某個欄位 eg: select name select count(*)
*@param $sql
*@return string or int
**/
public function getOne($sql){
$query=$this->query($sql);
//有可能出現錯誤
if(!$query){
//SQL語句有錯
echo ‘SQL語句錯誤!<br/>‘;
echo ‘錯誤編號:‘ . mysql_errno() . ‘<br/>‘;
echo ‘錯誤原因:‘ . mysql_error() . ‘<br/>‘;
exit;
}
return mysql_result($query,0);
}
/**
* 查詢一行記錄
*@param $sql
*@return array 一維數組
*mysql_fetch_assoc mysql_fetch_array mysql_fetch_row
**/
public function getRow($sql,$type="assoc"){
$query=$this->query($sql);
if(!in_array($type,array(‘assoc‘,‘array‘,‘row‘))){
die(‘mysql_query error!‘);
}
$funcname = "mysql_fetch_".$type;
return $funcname($query);
}
/**
* 查詢多條記錄
*@param $sql
*@return array 二維數組
*mysql_fetch_assoc mysql_fetch_array mysql_fetch_row
**/
public function getAll($sql){
//調用sql 執行函數
$query=$this->query($sql);
$list=array();
//遍曆結果
//while($arr = $this->getRowFromSource($query)){
while($arr = mysql_fetch_assoc($query)){
$list[]=$arr;
}
return $list;
}
/**
* 獲得上一次插入的id
**/
public function getInsertId(){
return mysql_insert_id();
}
/**
* 新增資料方法
* @param1 string $sql,要執行的SQL語句
* @param1 array $data,要添加的資料
* @return 自增長id
**/
public function insert($table,$data=array()){
//print_r($data);die;
$sql="insert into ".$table."(".implode(‘,‘,array_keys($data)).") values (‘".implode("‘,‘",array_values($data))."‘)";
//調用sql 執行函數
$query=$this->query($sql);
if($query){
//返回資料
return mysql_insert_id(); //得到上次操作的自增長ID
}else{
return $sql;
}
}
/**
* 修改資料方法
* @param string $table 操作的資料表名
* @param array $data 操作的資料
* @param array $condition 條件
**/
public function update($table,$data,$condition=array()){
$where=‘‘;
if(!empty($condition)){
foreach($condition as $k=>$v){
$where.=$k."=‘".$v."‘ and ";
}
$where=‘where ‘.$where .‘1=1‘;
}
$updatastr = ‘‘;
if(!empty($data)){
foreach($data as $k=>$v){
$updatastr.= $k."=‘".$v."‘,";
}
$updatastr = ‘set ‘.rtrim($updatastr,‘,‘);
}
$sql = "update {$table} {$updatastr} {$where}";
$query=$this->query($sql);
if($query){
echo ‘修改成功‘;
}else{
return $sql;
}
}
/**
* 刪除資料方法
* @param string $table 操作的資料表名
* @param array $condition 刪除的條件
*/
public function delete($table,$condition){
$where=‘‘;
if(!empty($condition)){
foreach($condition as $k=>$v){
$where.=$k."=‘".$v."‘ and ";
}
$where=‘where ‘.$where .‘1=1‘;
}
$sql="delete from {$table} {$where}";
$query=$this->query($sql);
if($query){
echo ‘刪除成功‘;
}else{
return $sql;
}
}
/**
* 查詢資料方法
* @param string $table 操作的資料表名
* @param array $condition 查詢的條件
* @param array $field 要查詢的欄位
*/
public function select($table,$condition=array(),$field = array()){
$where=‘‘;
if(!empty($condition)){
foreach($condition as $k=>$v){
$where.=$k."=‘".$v."‘ and ";
}
$where=‘where ‘.$where .‘1=1‘;
}
$fieldstr = ‘‘;
if(!empty($field)){
foreach($field as $k=>$v){
$fieldstr.= $v.‘,‘;
}
$fieldstr = rtrim($fieldstr,‘,‘);
}else{
$fieldstr = ‘*‘;
}
$sql = "select {$fieldstr} from {$table} {$where}";
$query=$this->query($sql);
$resultRow = array();
$i = 0;
while($row=mysql_fetch_assoc($query)){
foreach($row as $k=>$v){
$resultRow[$i][$k] = $v;
}
$i++;
}
return $resultRow;
}
}
php 封裝mysql 資料庫操作類