php 使用mysqli完成的乙個資料庫操作類

2021-06-08 21:39:26 字數 4162 閱讀 1805

<?php

class lib_mysqli else

} //快取類物件:檔案快取、memcache鍵值對快取

public function cache_obj($cache)

//析構函式:主要用來釋放結果集和關閉資料庫連線

public function __destruct()

//釋放結果集所佔資源

protected function free()

//關閉資料庫連線

protected function close()

//獲取結果集

protected function fetch()

//獲取查詢的sql語句

protected function get_query_sql($sql, $limit = null)

return $sql;

} //從快取中獲取資料

protected function get_cache($sql,$method)

} return $res;

} //獲取查詢次數

public function query_num()

//執行sql語句查詢

public function query($sql, $limit = null) else

} //返回單條記錄的單個字段值

public function get_one($sql)

//快取單個字段

public function cache_one($sql, $reload = false)

//獲取單條記錄

public function get_row($sql, $fetch_mode = mysqli_assoc)

//快取行

public function cache_row($sql, $reload = false)

//返回所有的結果集

public function get_all($sql, $limit = null, $fetch_mode = mysqli_assoc)

$this->free();

return $all_rows;

} //快取all

public function cache_all($sql, $reload = false, $limit = null)

//返回前一次mysql操作所影響的記錄行數

public function affected_rows()

/*** 獲取插入語句

** @param string $tbl_name 表名

* @param array $info 資料

*/public function get_insert_db_sql($tbl_name,$info)

$s_fields = "(".implode(",",$fields).")";

$s_values = "('".implode("','",$values)."')";

$sql = "insert into

$tbl_name

$s_fields

values

$s_values";

return $sql;

}else

}/**

* 獲取替換語句:replace into是insert into的增強版

* 區別:replace into跟insert功能類似,不同點在於:replace into 首先嘗試插入資料到表中,如果發現表中

已經有此行資料(根據主鍵或唯一索引判斷),則先刪除此行資料,然後插入新的資料,否則直接插入新資料

* @param string $tbl_name 表名

* @param array $info 資料

*/public function get_replace_db_sql($tbl_name,$info)

$s_fields = "(".implode(",",$fields).")";

$s_values = "('".implode("','",$values)."')";

$sql = "replace into

$tbl_name

$s_fields

values

$s_values";

return $sql;

}else

}/**

* 獲取更新sql語句

** @param string $tbl_name 表名

* @param array $info 資料

* @param array $condition 條件

*/public function get_update_db_sql($tbl_name,$info,$condition)

else

$i++;}}

$sql = "update ".$tbl_name." set ".$data." where ".$condition;

return $sql;

}else

}/**

* 取得資料庫最後乙個插入id

** @return int

*/public function last_id()

public function real_get($sql, $fetch_mode = mysqli_assoc)

}

在model中使用:

$tbl_product = tbl_pre . "products";

$tbl_goods = tbl_pre . "goods";

$tbl_brand = tbl_pre . "goods_brand";

$tbl_category = tbl_pre . "goods_category";

$tbl_type = tbl_pre . "goods_type";

$tbl_spec = tbl_pre ."goods_specification";

$sql = " select a.*, b.brand_name, b.brand_name_second,b.brand_logo,b.brand_******_intro,

b.url_path,c.category_name,c.url_path as cate_url_path, sp.spec_name, sp.spec_memo

from

(select g.*,p.product_id, p.bn, p.bar_code, p.color_id, p.color_text,p.small_list_page_product_pic_default,

p.small_list_page_product_pic_replace,p.is_new, p.is_promotion,p.is_newstyle,p.is_limit,p.is_classic,p.is_new_spring,p.act_id,

p.product_name, p.price as product_price, p.market_price as product_market_price, p.intro,

p.editor_intro,p.size_image_path, p.size_intro, p.video_path, p.size_image_name,

p.status as pstatus, p.is_stop as pisstop

from $tbl_product p

left join $tbl_goods g on p.goods_id = g.goods_id

where p.product_id = $id $_filter) a

left join $tbl_brand b on a.brand_id = b.brand_id

left join $tbl_category c on a.category_id = c.category_id

left join $tbl_spec sp on a.spec_id = sp.spec_id";

$result['base'] = $this->db->cache_row($sql);

PHP的MySQLi擴充套件

什麼是php的mysqli擴充套件?php的mysqli擴充套件又稱為mysql增強擴充套件,mysqli擴充套件在php5及以後版本中包含。mysqli擴充套件相對於mysql擴充套件的優勢 基於面向過程和物件導向的使用 支援預處理語句 支援事務 mysqli擴充套件安裝 配置php配置檔案,開啟...

PHP使用mysqli連線MySQL資料庫

1.建立連線 function mysqli connect host user password database port socket 說明 host 可選,對應的主機ip位址 user 可選,mysql使用者名稱 password 可選,密碼 database 可選,資料庫名稱 port 可...

PHP使用mysqli連線MySQL資料庫

使用mysqli函式庫連線mysql,支援物件導向和面向過程兩種方式 1.物件導向的使用方式 建立乙個連線 db new mysqli localhost root 123456 dbname 假設建立連線時未指定資料庫則選擇使用的資料庫。切換使用的資料庫 db select db dbname 查...