php連線資料庫

2022-08-27 16:18:15 字數 3472 閱讀 5098

php要對資料庫進行操作,首先要做的是與資料庫建立連線,通常我們使用mysql_connect函式進行資料庫連線,該函式需要指定資料庫的位址,使用者名稱及密碼。

$host = 'localhost';//伺服器名稱

$user = 'code1';//使用者名稱

$pass = '';//密碼

$link = mysql_connect($host, $user, $pass);

php連線資料庫的方式類似於直接在命令列下通過進行連線,類似:mysql -hlocalhost -ucode1 -p,當連線成功以後,我們需要選擇乙個操作的資料庫,通過mysql_select_db函式來選擇資料庫:

mysql_select_db('code1');

通常我們會先設定一下當前連線使用的字元編碼,一般的我們會使用utf8編碼,**如下:

mysql_query("set names 'utf8'");

通過上面的步驟,我們就與資料庫建立了連線,可以進行資料操作了。

在資料庫建立連線以後就可以進行查詢,採用mysql_query加sql語句的形式向資料庫傳送查詢指令。

$res = mysql_query('select * from user limit 1');

對於查詢類的語句會返回乙個資源控制代碼(resource),可以通過該資源獲取查詢結果集中的資料。

$row = mysql_fetch_array($res); var_dump($row);

預設的,php使用最近的資料庫連線執行查詢,但如果存在多個連線的情況,則可以通過引數指令從那個連線中進行查詢。

$link1 = mysql_connect('127.0.0.1', 'code1', '');

$link2 = mysql_connect('127.0.0.1', 'code1', '', true); //開啟乙個新的連線

$res = mysql_query('select * from user limit 1', $link1); //從第乙個連線中查詢資料

使用mysql_query進行資料查詢以後,那麼類似的,插入資料其實也是通過執行乙個sql語句來實現,例如:

$sql = "insert into user(name, age, class) values('李四', 18, '高三一班')";

mysql_query($sql); //執行插入語句

通常資料都是儲存在變數或者陣列中,因此sql語句需要先進行字串拼接得到。

$name = '李四';

$age = 18; $class = '高三一班';

$sql = "insert into user(name, age, class) values('$name', '$age', '$class')";

mysql_query($sql); //執行插入語句

在mysql中,執行插入語句以後,可以得到自增的主鍵id,通過php的mysql_insert_id函式可以獲取該id。

$uid = mysql_insert_id();

這個id的作用非常大,通常可以用來判斷是否插入成功,或者作為關聯id進行其他的資料操作。

php有多個函式可以獲取資料集中的一行資料,最常用的是mysql_fetch_array,可以通過設定引數來更改行資料的下標,預設的會包含數字索引的下標以及欄位名的關聯索引下標。

$sql = "select * from user limit 1";

$result = mysql_query($sql);

$row = mysql_fetch_array($result);

可以通過設定引數mysql_num只獲取數字索引陣列,等同於mysql_fetch_row函式,如果設定引數為mysql_assoc則只獲取關聯索引陣列,等同於mysql_fetch_assoc函式。

$row = mysql_fetch_row($result);

$row = mysql_fetch_array($result, mysql_num); //這兩個方法獲取的資料是一樣的

$row = mysql_fetch_assoc($result);

$row = mysql_fetch_array($result, mysql_assoc);

如果要獲取資料集中的所有資料,我們通過迴圈來遍歷整個結果集。

在實際應用中,我們並不希望一次性獲取資料表中的所有資料,那樣效能會非常的低,因此會使用翻頁功能,每頁僅顯示10條或者20條資料。

通過mysql的limit可以很容易的實現分頁,limit m,n表示從m行後取n行資料,在php中我們需要構造m與n來實現獲取某一頁的所有資料。

假定當前頁為$page,每頁顯示$n條資料,那麼m為當前頁前面所有的資料,既$m = ($page-1) * $n,在知道了翻頁原理以後,那麼我們很容易通過構造sql語句在php中實現資料翻頁。

$page = 2;

$n = 2;

$m = ($page - 1) * $n;

$sql = "select * from user limit $m, $n";

$result = mysql_query($sql); //迴圈獲取當前頁的資料

$data = array();

while ($row = mysql_fetch_assoc($result))

在上面的例子中,我們使用了$m與$n變數來表示偏移量與每頁資料條數,但我們推薦使用更有意義的變數名來表示,比如$pagesize, $start, $offset等,這樣更容易理解,有助於團隊協作開發。

資料的更新與刪除相對比較簡單,只需要構建好相應的sql語句,然後呼叫mysql_query執行就能完成相應的更新與刪除操作。

$sql = "update user set name = '曹操' where id=2 limit 1";

if (mysql_query($sql))

同樣的刪除可以使用類似以下的**:

$sql = "delete from user where id=2 limit 1";

if (mysql_query($sql))

對於刪除與更新操作,可以通過mysql_affected_rows函式來獲取更新過的資料行數,如果資料沒有變化,則結果為0。

$sql = "update user set name = '曹操' where id=2 limit 1";

if (mysql_query($sql))

當資料庫操作完成以後,可以使用mysql_close關閉資料庫連線,預設的,當php執行完畢以後,會自動的關閉資料庫連線。

mysql_close();

雖然php會自動關閉資料庫連線,一般情況下已經滿足需求,但是在對效能要求比較高的情況下,可以在進行完資料庫操作之後盡快關閉資料庫連線,以節省資源,提高效能。

在存在多個資料庫連線的情況下,可以設定連線資源引數來關閉指定的資料庫連線。

$link = mysql_connect($host, $user, $pass);

mysql_close($link);

php連線資料庫

create table message id tinyint 1 not null auto increment,user varchar 25 not null,title varchar 50 not null,content tinytext not null,lastdate date n...

php連線資料庫

天貓內部優惠券 設定資料庫變數 db host localhost 資料庫主機名稱,一般都為localhost db user root 資料庫使用者帳號,根據個人情況而定 db passw 資料庫使用者密碼,根據個人情況而定 db name test 資料庫具體名稱,以剛才建立的資料庫為準 連線資...

PHP連線資料庫

php連線資料庫函式 mysql connect 開啟mysql連線 mysql select db 開啟乙個資料庫 和or die 隱藏錯誤和條件顯示 mysql connect 主機 使用者名稱 密碼 mysql select db 開啟資料庫 鏈結標示符 如果不是特宣告連線標示符,則預設為是上...