php操作資料庫的工具類,php編程工具有哪些

本文目錄一覽:

關於php操作mysql執行資料庫查詢的一些常用操作匯總

php操作mysql步驟:

1.$connect=mysql_connect(‘localhost’,’root’,’123456′)

or

die(‘資料庫連接失敗。’mysql_error());鏈接mysql。

2.mysql_select_db(‘database’,$connect)選擇鏈接的資料庫。

3.mysql_query(‘Set

names

gb2312′);$sql

=

“select

*

from

blog_article”;準備要查詢的數據。

4.$datas

=

mysql_query($sql);執行sql查詢。

5.$data

=

mysql_fetch_assoc($datas)得到查詢到的緩存在內存中的一條數據。

6.print_r($data);

相同點:三個函數都是返回資料庫中查詢到的一行數據(說的再清楚點就是一條數據)。

不同點:mysql_fetch_assoc()用的是資料庫中相應的欄位名作為的key值(也就是數組下標)

如:filed[‘id’]=1;

mysql_fetch_row()用的是自動生成的數字(從0開始依次生成)作為的key值(也就是數組下標)

如:filed[0]=1;

mysql_fetch_array()用的是自動生成的數字(從0開始依次生成)作為的key值(也就是數組下標),而且它還同時生成資料庫中相應的欄位名作為的key值(也就是數組下標)

如:

filed[0]=1,filed[‘id’]=1;也就是說,mysql_fetch_array()將mysql_fetch_assoc()和mysql_fetch_row()查詢到的結果合為了一體了。

mysql_fetch_object()與mysql_fetch_assoc()差不多。只是mysql_fetch_assoc()返回的是數組。mysql_fetch_object()返回的是object對象。

mysql_insert_id() 取得上一步

INSERT

操作產生的

ID。

mysql_result()

函數返回結果集中一個欄位的值。

mysql_num_fields()

函數返回結果集中欄位的數目。

mysql_affected_rows();返回前一次

MySQL

操作所影響的記錄行數。

mysql_num_rows(mysql_query($sql))獲得結果集中行的數目。

mysql_pconnect()

函數打開一個到

MySQL

伺服器的持久連接。

mysql_pconnect()

mysql_connect()

非常相似,但有兩個主要區別:

1.

當連接的時候本函數將先嘗試尋找一個在同一個主機上用同樣的用戶名和密碼已經打開的(持久)連接,如果找到,則返回此連接標識而不打開新連接。

2.

其次,當腳本執行完畢後到

SQL

伺服器的連接不會被關閉,此連接將保持打開以備以後使用(mysql_close()

不會關閉由

mysql_pconnect()

建立的連接)。

mysql_data_seek(mysql_query($sql),8);獲得結果集中的第8條數據。(mysql_num_rows(mysql_query($sql))和mysql_data_seek(mysql_query($sql),8)在mysql_unbuffered_query($sql)不可以使用。)

mysql_unbuffered_query($sql)和mysql_query($sql)效果差不多,但是

mysql_unbuffered_query($sql)不緩存。mysql_query($sql)會緩存查詢的結果。

mysql_close();關閉mysql的最近的鏈接。

mysql_field_flags(mysql_query($sql),6)返回第六個欄位的表屬性輸出如:not_null

primary_key

auto_increment

mysql_fetch_lengths(mysql_query($sql))返回該條數據的所有欄位的每個欄位的長度。返回的是一個數字組成的數組。

mysql_field_name(mysql_query($sql),3)返回第三個欄位的欄位名。

mysql_field_table(mysql_query($sql),0)返回指定欄位所在的表名。

mysql_free_result(mysql_query($sql))

函數釋放結果內存。

mysql_get_client_info()

函數返回

MySQL

客戶端信息。

mysql_get_host_info()

取得

MySQL

主機信息。

(PHP)題目描述:請用單例模式定義一個訪問資料庫的工具類DbUtil,並調用

可以寫的。

希望我的回答可以幫到你,有什麼不懂可以追問。

PHP網站怎麼連接到資料庫?

常規方式

常規方式就是按部就班的讀取文件了。其餘的話和上述方案一致。

// 讀取配置文件內容

$handle = fopen(“filepath”, “r”);            $content = fread($handle, filesize(“filepath”));123

PHP解析XML

上述兩種讀取文件,其實都是為了PHP解析XML來做準備的。關於PHP解析XML的方式的博客有很多。方式也有很多,像simplexml,XMLReader,DOM啦等等。但是對於比較小型的xml配置文件,simplexml就足夠了。

配置文件

?xml version=”1.0″ encoding=”UTF-8″ ?mysql

!– 為防止出現意外,請按照此標準順序書寫.其實也無所謂了 —

hostlocalhost/host

userroot/user

password123456/password

dbtest/db

port3306/port/mysql12345678910

解析

?php/**

* 作為解析XML配置文件必備工具

*/class XMLUtil {

public static $dbconfigpath = “./db.config.xml”;    public static function getDBConfiguration() {

$dbconfig = array ();        try {            // 讀取配置文件內容

$handle = fopen(self::$dbconfigpath, “r”);            $content = fread($handle, filesize(self::$dbconfigpath));            // 獲取xml文檔根節點,進而獲取相關的資料庫信息

$mysql = simplexml_load_string($content);            // 將獲取到的xml節點信息賦值給關聯數組,方便接下來的方法調用

$dbconfig[‘host’] = $mysql-host;            $dbconfig[‘user’] = $mysql-user;            $dbconfig[‘password’] = $mysql-password;            $dbconfig[‘db’] = $mysql-db;            $dbconfig[‘port’] = $mysql-port;            // 將配置信息以關聯數組的形式返回

return $dbconfig;

} catch ( Exception $e ) {            throw new RuntimeException ( “mark讀取資料庫配置文件信息出錯!/markbr /” );

}        return $dbconfig;

}

}1234567891011121314151617181920212223242526272829

資料庫連接池

對於PHP程序而言,優化永無止境。而資料庫連接池就在一定程度上起到了優化的作用。其使得對用戶的每一個請求而言,無需每次都像資料庫申請鏈接資源。而是通過已存在的資料庫連接池中的鏈接來返回,從時間上,效率上,都是一個大大的提升。

於是,這裡簡單的模擬了一下資料庫連接池的實現。核心在於維護一個「池」。

從池子中取,用畢,歸還給池子。

?php/**x

*  PHP中的資料庫 工具類設計

*  郭璞

*  2016年12月23日

*

**/class DbHelper {    private $dbconfig;    private $dbpool;    public $poolsize;    public function __construct($poolsize = 20) {        if (! file_exists ( “./utils.php” )) {            throw new RuntimeException ( “markutils.php文件丟失,無法進行配置文件的初始化操作!/markbr /” );

}else {

require ‘./utils.php’;

}        // 初始化 配置文件信息

$this-dbconfig = XMLUtil::getDBConfiguration ();        // 準備好資料庫連接池「偽隊列」

$this-poolsize = $poolsize;

$this-dbpool = array ();        for($index = 1; $index = $this-poolsize; $index ++) {

$conn = mysqli_connect ( $this-dbconfig [‘host’], $this-dbconfig [‘user’], $this-dbconfig [‘password’], $this-dbconfig [‘db’] ) or die ( “mark連接資料庫失敗!/markbr /” );

array_push ( $this-dbpool, $conn );

}

}    /**

* 從資料庫連接池中獲取一個資料庫鏈接資源

*

* @throws ErrorException

* @return mixed

*/

public function getConn() {        if (count ( $this-dbpool ) = 0) {            throw new ErrorException ( “mark資料庫連接池中已無鏈接資源,請稍後重試!/mark” );

} else {            return array_pop ( $this-dbpool );

}

}    /**

* 將用完的資料庫鏈接資源放回到資料庫連接池

*

* @param unknown $conn

* @throws ErrorException

*/

public function release($conn) {        if (count ( $this-dbpool ) = $this-poolsize) {            throw new ErrorException ( “mark資料庫連接池已滿/markbr /” );

} else {

array_push ( $this-dbpool, $conn );

}

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/240540.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:24
下一篇 2024-12-12 12:24

相關推薦

  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • 如何通過jstack工具列出假死的java進程

    假死的java進程是指在運行過程中出現了某些問題導致進程停止響應,此時無法通過正常的方式關閉或者重啟該進程。在這種情況下,我們可以藉助jstack工具來獲取該進程的進程號和線程號,…

    編程 2025-04-29
  • Python磁碟操作全方位解析

    本篇文章將從多個方面對Python磁碟操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件許可權修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • 註冊表取證工具有哪些

    註冊表取證是數字取證的重要分支,主要是獲取計算機系統中的註冊表信息,進而分析痕迹,獲取重要證據。本文將以註冊表取證工具為中心,從多個方面進行詳細闡述。 一、註冊表取證工具概述 註冊…

    編程 2025-04-29

發表回復

登錄後才能評論