應該說沒有直接關系,php是一種后臺編程語言,sql數(shù)據(jù)庫。。就是數(shù)據(jù)庫,存儲查詢數(shù)據(jù)的。。。php連接數(shù)據(jù)庫可以進行對數(shù)據(jù)庫的一切操作(增刪改查),但是不是必須的,換成jsp,java,c什么的,都可以連接數(shù)據(jù)庫進行sql
你所需要的網(wǎng)站建設服務,我們均能行業(yè)靠前的水平為你提供.標準是產品質量的保證,主要從事網(wǎng)站制作、成都網(wǎng)站設計、企業(yè)網(wǎng)站建設、移動網(wǎng)站建設、網(wǎng)頁設計、品牌網(wǎng)站建設、網(wǎng)頁制作、做網(wǎng)站、建網(wǎng)站。成都創(chuàng)新互聯(lián)擁有實力堅強的技術研發(fā)團隊及素養(yǎng)的視覺設計專才。
PHP與數(shù)據(jù)庫連接最常用的方法有四種,它們分別是MySQL、mysqli、pdo、adodb,其中以第一種方法最常用,方法如下:
//與數(shù)據(jù)庫服務器連接
$conn = @mysql_connect('數(shù)據(jù)庫主機名','用戶名','密碼');
//選擇具體數(shù)據(jù)庫
mysql_select('數(shù)據(jù)庫名',$conn);
//如果只打開了一個數(shù)據(jù)庫連接,則$conn可以省略。
現(xiàn)在使用PDO鏈接數(shù)據(jù)庫的較多
連接是通過創(chuàng)建 PDO 基類的實例而建立的。不管使用哪種驅動程序,都是用 PDO 類名。構造函數(shù)接收用于指定數(shù)據(jù)庫源(所謂的 DSN)以及可能還包括用戶名和密碼(如果有的話)的參數(shù)。
連接到 MySQL
?php
$dbh?=?new?PDO('mysql:host=localhost;dbname=test',?$user,?$pass);
?
如果有任何連接錯誤,將拋出一個 PDOException 異常對象。如果想處理錯誤狀態(tài),可以捕獲異常,或者選擇留給通過 set_exception_handler() 設置的應用程序全局異常處理程序。
處理連接錯誤
?php
try?{
$dbh?=?new?PDO('mysql:host=localhost;dbname=test',?$user,?$pass);
foreach($dbh-query('SELECT?*?from?FOO')?as?$row)?{
print_r($row);
}
$dbh?=?null;
}?catch?(PDOException?$e)?{
print?"Error!:?"?.?$e-getMessage()?.?"br/";
die();
}
?
如果應用程序不在 PDO 構造函數(shù)中捕獲異常,zend 引擎采取的默認動作是結束腳本并顯示一個回溯跟蹤,此回溯跟蹤可能泄漏完整的數(shù)據(jù)庫連接細節(jié),包括用戶名和密碼。因此有責任去顯式(通過 catch 語句)或隱式(通過 set_exception_handler() )地捕獲異常。
連接數(shù)據(jù)成功后,返回一個 PDO 類的實例給腳本,此連接在 PDO 對象的生存周期中保持活動。要想關閉連接,需要銷毀對象以確保所有剩余到它的引用都被刪除,可以賦一個 NULL 值給對象變量。如果不明確地這么做,PHP 在腳本結束時會自動關閉連接。
關閉一個連接
?php
$dbh?=?new?PDO('mysql:host=localhost;dbname=test',?$user,?$pass);
//?在此使用連接
//?現(xiàn)在運行完成,在此關閉連接
$dbh?=?null;
?
很多 web 應用程序通過使用到數(shù)據(jù)庫服務的持久連接獲得好處。持久連接在腳本結束后不會被關閉,且被緩存,當另一個使用相同憑證的腳本連接請求時被重用。持久連接緩存可以避免每次腳本需要與數(shù)據(jù)庫回話時建立一個新連接的開銷,從而讓 web 應用程序更快。
php可以和很多數(shù)據(jù)庫連接,都有內置函數(shù),和哪一個數(shù)據(jù)庫連接都有一個連接函數(shù),但是都有一個特點,就是都需要服務器名,用戶名,密碼,連接成功就可以選擇數(shù)據(jù)庫,在執(zhí)行SQL語句,找個PHP手冊,里面各種對數(shù)據(jù)庫操作的函數(shù)。
由于數(shù)據(jù)庫很多,標準不統(tǒng)一,有機構用PHP寫了一個統(tǒng)一的代碼,例如adodb,使用的時候就只需要在連接的函數(shù)里面指出是那種數(shù)據(jù)庫,減少很多不必要的麻煩。
mysql可通過兩種方式通過php與web相連,一種通過php的mysql相關函數(shù),另一種通過php的odbc相關函數(shù)
相關函數(shù)如下:
mysql函數(shù)
mysql_affected_rows: 得到 mysql 最后操作影響的列數(shù)目。
mysql_close: 關閉 mysql 伺服器連線。
mysql_connect: 開啟 mysql 伺服器連線。
mysql_create_db: 建立一個 mysql 新資料庫。
mysql_data_seek: 移動內部傳回指標。
mysql_db_query: 送查詢字串 (query) 到 mysql 資料庫。
mysql_drop_db: 移除資料庫。
mysql_errno: 傳回錯誤訊息代碼。
mysql_error: 傳回錯誤訊息。
mysql_fetch_array: 傳回陣列資料。
mysql_fetch_field: 取得欄位資訊。
mysql_fetch_lengths: 傳回單列各欄資料最大長度。
mysql_fetch_object: 傳回物件資料。
mysql_fetch_row: 傳回單列的各欄位。
mysql_field_name: 傳回指定欄位的名稱。
mysql_field_seek: 設定指標到傳回值的某欄位。
mysql_field_table: 獲得目前欄位的資料表 (table) 名稱。
mysql_field_type: 獲得目前欄位的型態(tài)。
mysql_field_flags: 獲得目前欄位的旗標。
mysql_field_len: 獲得目前欄位的長度。
mysql_free_result: 釋放傳回占用記憶體。
mysql_insert_id: 傳回最后一次使用 insert 指令的 id。
mysql_list_fields: 列出指定資料表的欄位 (field)。
mysql_list_dbs: 列出 mysql 伺服器可用的資料庫 (database)。
mysql_list_tables: 列出指定資料庫的資料表 (table)。
mysql_num_fields: 取得傳回欄位的數(shù)目。
mysql_num_rows: 取得傳回列的數(shù)目。
mysql_pconnect: 開啟 mysql 伺服器長期連線。
mysql_query: 送出一個 query 字串。
mysql_result: 取得查詢 (query) 的結果。
mysql_select_db: 選擇一個資料庫。
mysql_tablename: 取得資料表名稱。
odbc函數(shù)
使用odbc函數(shù)需安裝mysql odbc
odbc_autocommit: 開關自動更動功能。
odbc_binmode: 設定二進位資料處理方式。
odbc_close: 關閉 odbc 連結。
odbc_close_all: 關閉所有 odbc 連結。
odbc_commit: 更動 odbc 資料庫。
odbc_connect: 連結至 odbc 資料庫。
odbc_cursor: 取得游標名。
odbc_do: 執(zhí)行 sql 指令。
odbc_exec: 執(zhí)行 sql 指令。
odbc_execute: 執(zhí)行預置 sql 指令。
odbc_fetch_into: 取得傳回的指定列。
odbc_fetch_row: 取得傳回一列。
odbc_field_name: 取得欄位名稱。
odbc_field_type: 取得欄位資料形態(tài)。
odbc_field_len: 取得欄位資料長度。
odbc_free_result: 釋出傳回資料的記憶體。
odbc_longreadlen: 設定傳回欄的最大值。
odbc_num_fields: 取得欄位數(shù)目。
odbc_pconnect: 長期連結至 odbc 資料庫。
odbc_prepare: 預置 sql 指令。
odbc_num_rows: 取得傳回列數(shù)目。
odbc_result: 取得傳回資料。
odbc_result_all: 傳回 html 表格資料。
odbc_rollback: 撤消當前交易。
odbc_setoption: 調整 odbc 設定。
持久的數(shù)據(jù)庫連接是指在腳本結束運行時不關閉的連接。當收到一個持久連接的請求時。PHP
將檢查是否已經(jīng)存在一個(前面已經(jīng)開啟的)相同的持久連接。如果存在,將直接使用這個連接;如果不存在,則建立一個新的連接。所謂"相同"的連接是指用相同的用戶名和密碼到相同主機的連接。
對 web 服務器的工作和分布負載沒有完全理解的讀者可能會錯誤地理解持久連接的作用。特別的,持久連接不會在相同的連接上提供建立"用戶會話"的能力,也不提供有效建立事務的能力。實際上,從嚴格意義上來講,持久連接不會提供任何非持久連接無法提供的特殊功能。