本文目錄一覽:
- 1、php怎麼用mysqli鏈接數據庫和輸出sql
- 2、PHP使用mysqli擴展連接MySQL數據庫
- 3、怎樣使用mysqli連接mysql數據庫
- 4、mysql連接數據庫換成mysqli連接代碼怎麼寫
- 5、PHP7連接mysql數據庫方法
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()方法,則連接標識是必需的。
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()查看影響行數
怎樣使用mysqli連接mysql數據庫
?php
$dbhost =”127.0.0.1″;
$dbuser = “root”;
$dbpwd = “root”;
$dbname = “test”;
$charName = “‘UTF8′”; //設置查詢字符集gbk,gbk2312,utf-8
$mysqli = new mysqli($dbhost,$dbuser,$dbpwd,$dbname);
if (mysqli_connect_errno()){ //注意mysqli_connect_error()新特性
die(‘Unable to connect!’). mysqli_connect_error();
}
$sql = “SET NAMES “.$charName;
$mysqli-query($sql);
$result=$mysqli-query(“select * from tttt order by id ; //根據前面的計算出開始的記錄和記錄數
while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){
$htmlstr.=$row[‘id’].” /br”;
}
echo $htmlstr;
mysql連接數據庫換成mysqli連接代碼怎麼寫
您好,mysqli有2種編寫方法,一種是面向過程,一種是面向對象。
官網上面有面向對象的寫法,您可以到php官網參考一下。
mysqli的面向過程基本上和mysql的思路差不多,也是先連接,選擇數據庫,查詢,取結果…
$sql = “SELECT * FROM table”;
/* 連接 */
$con = mysqli_connect(“localhost”,”user”,”password”,”dbname”);
if (!$con)
{
die(“連接錯誤: ” . mysqli_connect_error());
}
/* 查詢 */
$Result = mysqli_query($con,$sql);
/* 遍歷結果集 */
while($data = mysqli_fetch_assoc($Result))
{
$Data_Username = $data[“username”];
$Data_Password = $data[“password”];
echo “用戶名:{$Data_Username},密碼:{$Data_Password}”;
}
/* 釋放查詢結果 */
mysqli_free_result($Result);
/* 關閉連接 */
mysqli_close($con);
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);
不填寫參數的話,默認是關聯和索引都有,如下圖
原創文章,作者:RCOAS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/317168.html