php操作mysql時(php與mysql)

本文目錄一覽:

怎樣用PHP中的MySQL操作函數

1. 建立MySQL 連接:mysql_connect

resource mysql_connect([string $server[, string $username [, string $password [, bool $new_link [, int $client flags]]]]])

打開或重複使用一個到MySQL伺服器的連接。其中,server代表MySQL伺服器,可以包括埠號,例如「hostname:port」。username和password分別代表登錄MySQL伺服器使用的用戶名和密碼。

2. 選擇 MySQL 資料庫:mysql_select_db

bool mysql_select_db(string $database_name[, resource $link_identifier])

設定與指定的連接標識符所關聯的伺服器上的當前資料庫。如果沒有指定連接標識符,則使用上一個打開的連接。如果沒有打開的連接,本函數將無參數地調用mysql_connect()來嘗試打開一個資料庫連接。如果成功則返回true,失敗則返回false。每個其後的mysgl_query()調用都會作用於活動資料庫。

3. 執行查詢:mysql_query

resource mysql_query(string $query[, resource $link_identifier])

向與指定的連接標識的關聯的伺服器中的當前活動資料庫發送一條查詢。如果沒有指定 link_identifier,則使用上一個打開的連接。如果沒有打開的連接,本函數會嘗試無參數地調用mysql_connect()函數來建立一個連接,查詢結果會被緩存。mysql_query()僅對SELECT、SHOW、EXPLAIN或DESCRIBE語句返回一個資源標識符,如果查詢執行不正確則返回false。對於其他類型的SQL語句,mysgl_query()在執行成功時返回true,出錯時返回false。非false的返回值意味著查詢是合法的並能夠被伺服器執行但是並不說明任何影響到的或返回的行數。因為一條查詢執行成功了但並未影響到或並未返回任何行的情況是可能發生的。

4. 從結果集中取得一行作為枚舉數組:mysql_fetch_row

array mysql_fetch_row(resource $result)

從和指定的結果標識關聯的結果集中取得一行數據並作為數組返回。每個結果的列儲存在一個索引數組的單元中,偏移量從0開始。依次調用mysql_fetch_row()將返回結果集中的下一行,如果沒有更多行則返回false。

5. 從結果集中取得一行作為關聯數組,或數字數組,或二者兼有:mysql_fetch_array

array mysql_fetch_array(resource $result[, int $result_type])

mysql_fetch_row()的擴展版本。除了將數據以數字索引方式儲存在數組中之外,還可以將數據作為關聯索引儲存,用欄位名作為鍵名。如果結果中出現欄位名重名的現象,最後一列將優先。要訪問同名的其他列,必須用該列的數字索引或給該列起個別名。對有別名的列,用別名來訪問其內容。

6. 關閉 MySQL 連接:mysql_close

bool mysql_close([resource $link_identifier])

mysql_close()關閉指定的連接標識所關聯的到MySQL伺服器的非持久連接。如果沒有指定link_identifier,則關閉上一個打開的連接。

例PHP中使用MySQL資料庫(mysql.php)

?php//連接MySQL資料庫

mysql_connect(‘localhost’, ‘root’, ‘123’);

//選擇當前資料庫

//等效為執行USE test

mysql_select_db(‘test’);

//在當前資料庫執行SQL語句

$query = “SELECT * FROM students”;

$result = mysql_query($query);

//操作上次查詢返回的結果集,注意$result變數一般是需要的

while($student = mysql_fetch_array($result)) {

echo ‘pre’;

print_r($student);

echo ‘/pre’;

}

?

關於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中如何操作MySQL

在這種情況下,雖然省略了分號,但是 PHP 在執行 MySQL 命令時會自動的幫你加上的。另外還有一個不要加分號的情況。當你想把要欄位的豎者排列顯示下來,而不是像通常的那樣橫著排列時,你可以用 G 來結束一行 SQL 語句,這時就用不上分號了,例如:SELECT * FROM PENPALS WHERE USER_ID = 1G TEXT、DATE、和 SET 數據類型MySQL 數據表的欄位必須有定義一個數據類型。這有大約 25 種選擇,大部分都是直接明了的,就不多費口舌了。但有幾個有必要提一下。TEXT 不是一種數據類型,雖然可能有些書上是這麼說的。它實際上應該是「 LONG VARCHAR 」或者「 MEDIUMTEXT 」。DATE 數據類型的格式是 YYYY-MM-DD ,比如: 1999-12-08 。你可以很容易的用 date 函數來得到這種格式的當前系統時間: date(“Y-m-d”)並且,在 DATA 數據類型之間可以作減法,得到相差的時間天數:$age = ($current_date – $birthdate); 集合SET 是一個有用的數據類型,它和枚舉 ENUM 有點相似,只不過是 SET 能夠保存多個值而 ENUM 只能保存一個值而已。而且, SET 類型最多只能夠有 64 個預定的值,而 ENUM 類型卻能夠處理最多 65,535 個預定義的值。而如果需要有大於 64 個值的集合,該怎麼辦呢?這時就需要定義多個集合來一起解決這個問題了。通配符SQL 的通配符有兩種:「 * 」和「 % 」。分別用在不同的情況下。例如:如果你想看到資料庫的所有內容,可以像這樣來查詢:SELECT * FROM dbname WHERE USER_ID LIKE ‘%’; 這兒,兩個通配符都被用上了。他們表示相同的意思 ? 都是用來匹配任何的字元串,但是他們用在不同的上下文中。「 * 」用來匹配欄位名,而「 % 」用來匹配欄位值。另外一個不容易引起注意的地方是「 % 」通配符需要和 LIKE 關鍵字一起使用。還有一個通配符,就是下劃線「 _ 」,它代表的意思和上面不同,是用來匹配任何單個的字元的。NOT NULL 和空記錄一個值為 NULL 的紀錄和一個空紀錄是有一些區別的。 % 通配符可以匹配空紀錄,但是卻不能匹配 NULL 紀錄。在某些時候,這種區別會造成一些意想不到的後果。就我的經驗而言,任何欄位都應該聲明為 NOT NULL 。這樣下面的 SELECT 查詢語句就能夠正常運轉了: if (!$CITY) {$CITY =”%”;}$selectresult = mysql_query (“SELECT * FROM dbname WHERE FIRST_NAME =’ 柳’ AND LAST_NAME =’ 如風’ AND CITY LIKE ‘$CITY’ “); 在第一行中,如果用戶沒有指定一個 CITY 值,那麼就會用通配符 % 來代入 CITY 變數,這樣搜索時就會把任何的 CITY 值都考慮進去,甚至包括那些 CITY 欄位為空的紀錄。但是如果有一些紀錄,它的 CITY 欄位值是 NULL ,這時問題就出現了。上面的查詢是不能夠找到這些欄位的。問題的一個解決辦法可以是這樣: if (!$CITY) { $CITY =”%”; }$selectresult = mysql_query (“SELECT * FROM dbname WHERE FIRST_NAME =’ 柳’ AND LAST_NAME =’ 如風’ AND (CITY LIKE ‘$CITY’ OR CITY IS NULL)”); 注意在搜索 NULL 時,必須用「 IS 」關鍵字,而 LIKE 時不會正常工作的。

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

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

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

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

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

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

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

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

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

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

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

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

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

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

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

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

    本文將從多個方面對Python元祖的操作進行詳細闡述。包括:元祖定義及初始化、元祖遍歷、元祖切片、元祖合併及比較、元祖解包等內容。 一、元祖定義及初始化 元祖在Python中屬於序…

    編程 2025-04-29

發表回復

登錄後才能評論