⑴ php連接mysql資料庫原理是怎樣的
現在使用PDO鏈接資料庫的較多
連接是通過創建 PDO 基類的實例而建立的。不管使用哪種驅動程序,都是用 PDO 類名。構造函數接收用於指定資料庫源(所謂的 DSN)以及可能還包括用戶名和密碼(如果有的話)的參數。
連接到 MySQL
<?php
$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
?>
如果有任何連接錯誤,將拋出一個 PDOException 異常對象。如果想處理錯誤狀態,可以捕獲異常,或者選擇留給通過 set_exception_handler() 設置的應用程序全局異常處理程序。
處理連接錯誤
<?php
try{
$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
foreach($dbh->query('SELECT*fromFOO')as$row){
print_r($row);
}
$dbh=null;
}catch(PDOException$e){
print"Error!:".$e->getMessage()."<br/>";
die();
}
?>
如果應用程序不在 PDO 構造函數中捕獲異常,zend 引擎採取的默認動作是結束腳本並顯示一個回溯跟蹤,此回溯跟蹤可能泄漏完整的資料庫連接細節,包括用戶名和密碼。因此有責任去顯式(通過 catch 語句)或隱式(通過 set_exception_handler() )地捕獲異常。
連接數據成功後,返回一個 PDO 類的實例給腳本,此連接在 PDO 對象的生存周期中保持活動。要想關閉連接,需要銷毀對象以確保所有剩餘到它的引用都被刪除,可以賦一個 NULL 值給對象變數。如果不明確地這么做,PHP 在腳本結束時會自動關閉連接。
關閉一個連接
<?php
$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);
//在此使用連接
//現在運行完成,在此關閉連接
$dbh=null;
?>
很多 web 應用程序通過使用到資料庫服務的持久連接獲得好處。持久連接在腳本結束後不會被關閉,且被緩存,當另一個使用相同憑證的腳本連接請求時被重用。持久連接緩存可以避免每次腳本需要與資料庫回話時建立一個新連接的開銷,從而讓 web 應用程序更快。
⑵ php怎麼連接mysql資料庫
<?php
$dbhost = 'localhost'; // mysql伺服器主機地址
$dbuser = 'root'; // mysql用戶名
$dbpass = '123456'; // mysql用戶名密碼
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('Could not connect: ' . mysqli_error());
}
echo '資料庫連接成功!';
mysqli_close($conn);
?>
下面是說明:
PHP 提供了 mysqli_connect() 函數來連接資料庫。該函數有 6 個參數,在成功鏈接到 MySQL 後返回連接標識,失敗返回 FALSE 。
語法
mysqli_connect(host, username, password, dbname,port, socket);
參數說明:
參數 描述
host 可選。規定主機名或 IP 地址。
username 可選。規定 MySQL 用戶名。
password 可選。規定 MySQL 密碼。
dbname 可選。規定默認使用的資料庫。
port 可選。規定嘗試連接到 MySQL 伺服器的埠號。
socket 可選。規定 socket 或要使用的已命名 pipe。
⑶ PHP7連接mysql資料庫方法
1、用 mysql_connect 的方法,PHP7會報致命錯誤
$conn= mysql_connect('localhost','xueyanxiang','xueyanxiang');
Fatal error : Uncaught Error: Call to undefined function mysql_connect() in /Users/xueyanxiang/work/test/xue.php:31 Stack trace: #0 /Users/xueyanxiang/work/test/xue.php(119): xue->run() #1 {main} thrown in /Users/xueyanxiang/work/test/xue.php on line 31
原因是:
PHP5中使用mysql_connect()函數進行連接,但實際上,PHP5.5開始,MySQL就不推薦使用了,屬於廢棄函數
PHP7中貌似已經徹底不支持了,根據官網說明,取而代之的是如下兩個:
本擴展自 PHP 5.5.0 起已廢棄,並在將來會被移除。應使用 MySQLi 或 PDO_MySQL 擴展來替換之。參見 MySQL:選擇
API 指南以及相關 FAQ 以獲取更多信息。用以替代本函數的有:
mysqli_connect()
PDO::__construct()
使用時,不要在使用mysql_connect了,可以換用mysqli_connect(),用法基本類似吧,據說是面向對象的庫。
php.ini中,也只有extension=php_mysqli.dll,而不再有extension=php_mysql.dll這個拓展了。
2、可以使用mysqli,對象化,方法名與被廢棄的類似
$conn= mysqli_connect('localhost','xueyanxiang','xueyanxiang');
3、PDO工具,推薦使用
$dbh= "mysql:host=localhost;dbname=test";
$db= new PDO($dbh,'xueyanxiang','xueyanxiang');
$objQuery= $db->query("select * from user;");
$res= $objQuery->fetchAll(PDO::FETCH_ASSOC);
不填寫參數的話,默認是關聯和索引都有,如下圖
⑷ php 如何定義函數連接資料庫
你定義的dbopen沒看見你調用?其實你可以在dbopen裡面返回$conn,例如:
function dbopen(){
.....
return $Conn;
}
$cid=dbopen();
以後就可以使用$cid變數操作資料庫
⑸ PHP是如何與資料庫連接的
php有內置的函數,可以連接mysql、mssql等資料庫,例如mysql的:
建立連接:
$conn = mysql_connect($MysqlServername, $MysqlUsername, $MysqlPassword) or die ("Unable to connect!");
執行查詢(或者其他操作),把mysql的操作寫在第一個參數 那裡。
mysql_query($SqlStrCreateDB, $conn)
⑹ 怎麼將php與資料庫連接
php鏈接mysql必備條件:
已安裝mysql資料庫;
檢查php環境是否已開啟mysql擴展(一般情況下是開啟的);
檢查方法:a.使用phpinfo();函數,看有沒有mysql項;b.打開php.ini文件,檢查php_mysql.dll前分號是否已取掉。
php鏈接代碼如下:
<?php
//設置編碼格式
header("Content-type:text/html;charset=utf-8");
//定義資料庫主機地址
$host="localhost";
//定義mysql資料庫登錄用戶名
$user="root";
//定義mysql資料庫登錄密碼
$pwd="";
//鏈接資料庫
$conn = mysql_connect($host,$user,$pwd);
//對連接進行判斷
if(!$conn){
die("資料庫連接失敗!".mysql_errno());
}else{
echo "資料庫連接成功!";
}
?>
⑺ 如何在PHP裡面連接資料庫
12mysql_connect();// 這個函數是連接資料庫所在伺服器的mysql_select_db();// 這個函數是連接具體資料庫的如果是要聯接同一個伺服器里的不同資料庫里的表,那麼就不需要第二個函數,直接在sql語句里進行選擇就可以了。select * from `庫`.`表` where 1就是在表達表的時候前面用庫進行修飾
⑻ php連接mysql資料庫的主要函數的作用與格式
mysql可通過兩種方式通過php與web相連,一種通過php的mysql相關函數,另一種通過php的odbc相關函數
相關函數如下:
mysql函數
mysql_affected_rows: 得到 mysql 最後操作影響的列數目。
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: 獲得目前欄位的型態。
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: 取得傳回欄位的數目。
mysql_num_rows: 取得傳回列的數目。
mysql_pconnect: 開啟 mysql 伺服器長期連線。
mysql_query: 送出一個 query 字串。
mysql_result: 取得查詢 (query) 的結果。
mysql_select_db: 選擇一個資料庫。
mysql_tablename: 取得資料表名稱。
odbc函數
使用odbc函數需安裝mysql odbc
odbc_autocommit: 開關自動更動功能。
odbc_binmode: 設定二進位資料處理方式。
odbc_close: 關閉 odbc 連結。
odbc_close_all: 關閉所有 odbc 連結。
odbc_commit: 更動 odbc 資料庫。
odbc_connect: 連結至 odbc 資料庫。
odbc_cursor: 取得游標名。
odbc_do: 執行 sql 指令。
odbc_exec: 執行 sql 指令。
odbc_execute: 執行預置 sql 指令。
odbc_fetch_into: 取得傳回的指定列。
odbc_fetch_row: 取得傳回一列。
odbc_field_name: 取得欄位名稱。
odbc_field_type: 取得欄位資料形態。
odbc_field_len: 取得欄位資料長度。
odbc_free_result: 釋出傳回資料的記憶體。
odbc_longreadlen: 設定傳回欄的最大值。
odbc_num_fields: 取得欄位數目。
odbc_pconnect: 長期連結至 odbc 資料庫。
odbc_prepare: 預置 sql 指令。
odbc_num_rows: 取得傳回列數目。
odbc_result: 取得傳回資料。
odbc_result_all: 傳回 html 表格資料。
odbc_rollback: 撤消當前交易。
odbc_setoption: 調整 odbc 設定。
⑼ php怎麼把數據導入資料庫
需要PHP基礎知識和資料庫基礎知識。
以SQL為例。使用PHP MySQL 函數可以編輯資料庫。
mysql_connect() 函數打開MySQL 連接。舉例
<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}// 一些代碼...mysql_close($con);
?>
mysql_connect()三個參數分別是伺服器名,連接賬號,連接密碼。
連接之後,可以使用mysql_select_db()設置要處理的資料庫,後面則是用資料庫語句處理數據。SQL語法簡介網頁鏈接
⑽ 在PHP的mysqli擴展中,連接資料庫的函數是什麼
mysqli_connect,手冊上的例子如下圖: