本文目錄一覽:
- 1、怎麼樣讓多個PHP文件共享一個MYSQLI鏈接?
- 2、求助php的mysqli系列函數鏈接的簡單問題
- 3、怎麼無法開啟mysqli 擴展
- 4、PHP使用mysqli擴展連接MySQL資料庫
- 5、php怎麼用mysqli鏈接資料庫和輸出sql
- 6、求助mysql如何連接php文件
怎麼樣讓多個PHP文件共享一個MYSQLI鏈接?
呵呵 其實很簡單 你可以不關閉鏈接的!
你把鏈接資料庫的函數寫個文件 以後包含這個文件就可以了!
沒個文件調用
求助php的mysqli系列函數鏈接的簡單問題
別聽樓上幾個胡說!
連接速度快是不假,但如果你的網站並發在100左右,那麼100次並發中都在請求你的資料庫那你的SQL不當掉才怪。
你可以把連接的方法寫進類里,讓它形成方法比如
class something {
global $db;
function web_db(){
$this-db = $this-database(); //把連接方法存如屬性里
}
function database($server = ‘localhost’,$root = ‘root’,$pass = ‘****’){
……//這裡寫你的連接方法,及其關聯表操作
}
…//其他方法
} //class end
在你的頁面程序中這樣寫
require_once “web_common.class.php”;//包進你的類文件
$mysql = new something;
在你需要數據查詢或寫入的時候只要調用 $mysql-db;就好了
如上你可以看出,無論你有多少客戶請求資料庫,而資料庫只在載入頁面時連接一次而已,調用 $mysql-db 只是請求程序,請求方法而已,沒有請求資料庫。第一,資料庫連接查詢只有一次;第二無形中也加快了頁面的載入速度。
記住,你做網頁不是給一個人兩個人用的,而是很很很多個,為了保證資料庫的正常使用,在多請求的情況下依然能很好工作,這是個很好的辦法。
最後close是可寫可不寫的,因為當mysql沒有請求時,它會自動關閉。
怎麼無法開啟mysqli 擴展
啟用mysqli擴展模塊的方法如下:
與mysql功能擴展模塊類似,mysqli介面也不是PHP的一個集成組件,如果想使用這個功能擴展模塊,需要顯示配置PHP才能使用此擴展。在 不同平台下的配置有所不同,如果在Linux平台中啟用mysqli擴展,必須在編譯PHP時加上–with-mysqli選項。如果在Windows 平台中啟用mysqli擴展,需要通過一個DLL文件提供相應的擴展。不管使用的是哪一個操作系統平台,都必須在php.ini文件里啟用這個擴展,以確 保PHP能夠找到所有必要的DLL。可以在php.ini文件中找到下面一行,取消前面的注釋,如果沒有找到就添加這樣一行:
extension=php_mysqli.dll //在php.ini文件中啟用這一行
關於配置PHP的更多信息,請參見本書第2章的環境安裝。另外,可以在PHP腳本文件中,調用phpinfo()函數檢查PHP版本是否支持mysqli介面。如果找到如圖13-1所示的結果,則所用的PHP版本中支持mysqli介面。
mysqli 擴展不僅提供了mysql模塊的所有功能,也相應地增加了一些新特性。mysqli擴展模塊包括mysqli、mysqli_result和 mysqli_stmt三個類,通過這三個類的搭配使用,就可以連接MySQL資料庫伺服器和選擇資料庫、查詢和獲取數據,以及使用預處理語句簡化了重複 執行的查詢語句。
PHP使用mysqli擴展連接MySQL資料庫
1.面向對象的使用方式
$db
=
new
mysqli(‘localhost’,
‘root’,
‘123456’,
‘dbname’);
如果建立連接時未指定資料庫則選擇使用的資料庫,切換使用的資料庫
$db-select_db(‘dbname’);
$query
=
“SELECT
*
FROM
user
WHERE
uid=4″;
$result
=
$db-query($query);
$result_num
=
$result-num_rows;
$row
=
$result-fetch_assoc();
//返回一個關聯數組,可以通過$row[‘uid’]的方式取得值
$row
=
$result-fetch_row();
//返回一個列舉數組,可以通過$row[0]的方式取得值
$row
=
$result-fetch_array();
//返回一個混合數組,可以通過$row[‘uid’]和$row[0]兩種方式取得值
$row
=
$result-fetch_object();
//返回一個對象,可以通過$row-uid的方式取得值
$result-free();
//釋放結果集
$db-close();
//關閉一個資料庫連接,這不是必要的,因為腳本執行完畢時會自動關閉連接
當進行INSERT、UPDATE、DELETE操作時,使用$db-affected_rows查看影響行數
2.面向過程的使用方式
$db
=
mysqli_connect(‘localhost’,
‘root’,
‘123456’,
‘dbname’);
如果建立連接時未指定資料庫則選擇使用的資料庫,切換使用的資料庫
mysqli_select_db($db,
‘dbname’);
查詢資料庫
$query
=
“SELECT
*
FROM
user
WHERE
uid=4″;
$result
=
mysqli_query($db,
$query);
$result_num
=
mysqli_num_rows($result);
返回一行結果
$row
=
mysqli_fetch_assoc($result);
//返回一個關聯數組,可以通過$row[‘uid’]的方式取得值
$row
=
mysqli_fetch_row($result);
//返回一個列舉數組,可以通過$row[0]的方式取得值
$row
=
mysqli_fetch_array($result);
//返回一個混合數組,可以通過$row[‘uid’]和$row[0]兩種方式取得值
$row
=
mysqli_fetch_object($result);
//返回一個對象,可以通過$row-uid的方式取得值
斷開資料庫連接
mysqli_free_result($result);
//釋放結果集
mysqli_close($db);
//關閉一個資料庫連接,這不是必要的,因為腳本執行完畢時會自動關閉連接
當進行INSERT、UPDATE、DELETE操作時,使用mysqli_affected_rows()查看影響行數
php怎麼用mysqli鏈接資料庫和輸出sql
一、mysql與mysqli的概念相關:
1、mysql與mysqli都是php方面的函數集,與mysql資料庫關聯不大。
2、在php5版本之前,一般是用php的mysql函數去驅動mysql資料庫的,比如mysql_query()的函數,屬於面向過程3、在php5版本以後,增加了mysqli的函數功能,某種意義上講,它是mysql系統函數的增強版,更穩定更高效更安全,與mysql_query()對應的有mysqli_query(),屬於面向對象,用對象的方式操作驅動mysql資料庫
二、mysql與mysqli的區別:
1、mysql是非持繼連接函數,mysql每次鏈接都會打開一個連接的進程。
2、mysqli是永遠連接函數,mysqli多次運行mysqli將使用同一連接進程,從而減少了伺服器的開銷。mysqli封裝了諸如事務等一些高級操作,同時封裝了DB操作過程中的很多可用的方法。
三、mysql與mysqli的用法:
1:mysql(過程方式):
$conn =
mysql_connect(‘localhost’, ‘user’, ‘password’); //連接mysql資料庫mysql_select_db(‘data_base’);
//選擇資料庫$result =
mysql_query(‘select * from data_base’);//第二個可選參數,指定打開的連接$row =
mysql_fetch_row( $result ) ) //只取一行數據echo
$row[0]; //輸出第一個欄位的值
PS:mysqli以過程式的方式操作,有些函數必須指定資源,比如mysqli_query(資源標識,SQL語句),並且資源標識的參數是放在前面的,而mysql_query(SQL語句,’資源標識’)的資源標識是可選的,默認值是上一個打開的連接或資源。
2、mysqli(對象方式):
$conn = new
mysqli(‘localhost’, ‘user’, ‘password’,’data_base’);//要使用new操作符,最後一個參數是直接指定資料庫//假如構造時候不指定,那下一句需要$conn – select_db(‘data_base’)實現$result =
$conn – query( ‘select * from data_base’ );$row =
$result – fetch_row(); //取一行數據echo
row[0]; //輸出第一個欄位的值
使用new mysqli(‘localhost’, usenamer’, ‘password’, ‘databasename’);會報錯,提示如下:
Fatal error: Class ‘mysqli’ not found in …
一般是mysqli是沒有開啟的,因為mysqli類不是默認開啟的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli編譯進去。
四、mysql_connect()與mysqli_connect()
1.使用mysqli,可以把資料庫名稱當作參數傳給mysqli_connect()函數,也可以傳遞給mysqli的構造函數;
2.如果調用mysqli_query()或mysqli的對象查詢query()方法,則連接標識是必需的。
求助mysql如何連接php文件
其實不用一開始就關心conn.php,建議先寫一個最簡單的php腳本來驗證MYSQL資料庫的連接、查詢、關閉功能是否正常,測試腳本示例如下:
?php
$mysqli = new mysqli(‘localhost’, ‘my_user’, ‘my_password’, ‘my_db’);
if ($mysqli-connect_error) {
die(‘Connect Error (‘ . $mysqli-connect_errno . ‘) ‘
. $mysqli-connect_error);
}
if (mysqli_connect_error()) {
die(‘Connect Error (‘ . mysqli_connect_errno() . ‘) ‘
. mysqli_connect_error());
}
echo ‘Success… ‘ . $mysqli-host_info . “\n”;
$mysqli-close();
?
如果測試通過了,我們再來看為什麼需要conn.php文件——不可能把數據的IP地址、用戶名、密碼等參數寫入每一個PHP文件,辦法就是做一個簡單的conn.php來存放這些內容,所有需要連接MYSQL的程序都引用conn.php進行工作,所以conn.php中只要有如下一行即可:
$mysqli = new mysqli(‘localhost’, ‘my_user’, ‘my_password’, ‘my_db’);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/195287.html