日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

PHP擴展小試牛刀系列之數據庫擴展mysqli詳細使用教程

瀏覽:32日期:2022-09-13 10:10:09

PHP擴展小試牛刀系列之數據庫擴展mysqli詳細使用教程

mysqli提供了面向對象和面向過程兩種方式來與數據庫交互,分別看一下這兩種方式。

1、面向對象

在面向對象的方式中,mysqli被封裝成一個類,它的構造方法如下:

__construct ([ string $host [, string $username [, string $passwd [, string $dbname[, int $port [, string $socket ]]]]]] )

在上述語法中涉及到的參數說明如下。

host:連接的服務器地址。username:連接數據庫的用戶名,默認值是服務器進程所有者的用戶名。passwd:連接數據庫的密碼,默認值為空。dbname:連接的數據庫名稱。port:TCP端口號。socket:UNIX域socket。

要建立與MySQL的連接可以通過其構造方法實例化mysqli類,例如下面的代碼:

<?php $db_host='localhost'; //連接的服務器地址 $db_user='root'; //連接數據庫的用戶名 $db_psw='root'; //連接數據庫的密碼 $db_name='sunyang'; //連接的數據庫名稱 $mysqli=new mysqli($db_host,$db_user,$db_psw,$db_name);?>

mysqli還提供了一個連接MySQL的成員方法connect()。當實例化構造方法為空的mysqli類時,用mysqli對象調用connect()方法同樣可連接MySQL,例如,下面的代碼:

<?php $db_host='localhost'; //連接的服務器地址 $db_user='root'; //連接數據庫的用戶名 $db_psw='root'; //連接數據庫的密碼 $db_name='sunyang'; //連接的數據庫名稱 $mysqli=new mysqli(); $mysqli->connect($db_host,$db_user,$db_psw,$db_name);?>

關閉與MySQL服務器的連接通過mysqli對象調用close()方法即可,例如:

$mysqli->close();2、面向過程

在面向過程的方式中,mysqli擴展提供了函數mysqli_connect()與MySQL建立連接,該函數的語法格式如下:

mysqli mysqli_connect ([ string $host [, string $username [, string $passwd[, string $dbname [, int $port [, string $socket ]]]]]] )

mysqli_connect()函數的用法與mysql擴展中的mysql_connect()函數用法十分相似,下面是mysqli_connect()函數的用法示例:

<?php $connection = mysqli_connect('localhost','root','root','sunyang'); if ( $connection ) {echo '數據庫連接成功'; }else {echo '數據庫連接失敗'; }?>

關閉與MySQL服務器的連接使用mysqli_close()函數,例如:

mysqli_close();3、使用mysqli存取數據

使用mysqli存取數據也包括面向對象和面向過程兩種方式,在本節我們只討論如何使用面向對象的方式來與MySQL交互,關于mysqli擴展中使用面向過程方式這里就不再詳細介紹了,有興趣的讀者可參考官方文檔來獲取相關的資料。

在mysqli中,執行查詢使用query()方法,該方法的語法格式如下:

mixed query ( string $query [, int $resultmode ] )

在上述語法中涉及到的參數說明如下:

query:向服務器發送的SQL語句。resultmode:該參數接受兩個值,一個是MYSQLI_STORE_RESULT,表示結果作為緩沖集合返回;另一個是MYSQLI_USE_RESULT,表示結果作為非緩沖集合返回。

下面是使用query()方法執行查詢的例子:

<?php $mysqli=new mysqli('localhost','root','root','sunyang'); //實例化mysqli $query='select * from employee'; $result=$mysqli->query($query); if ($result) {if($result->num_rows>0){ //判斷結果集中行的數目是否大于0 while($row =$result->fetch_array() ){ //循環輸出結果集中的記錄echo ($row[0]).'<br>';echo ($row[1]).'<br>';echo ($row[2]).'<br>';echo ($row[3]).'<br>';echo '<hr>'; }} }else {echo '查詢失敗'; } $result->free(); $mysqli->close();?>

在上面代碼中,num_rows為結果集的一個屬性,返回結果集中行的數目。方法fetch_array()將結果集中的記錄放入一個數組中并將其返回。最后使用free()方法將結果集中的內存釋放,使用close()方法將數據庫連接關閉。

對于刪除記錄(delete)、保存記錄(insert)和修改記錄(update)的操作,也是使用query()方法來執行的,下面是刪除記錄的例子:

<?php $mysqli=new mysqli('localhost','root','root','sunyang'); //實例化mysqli $query='delete from employee where emp_id=2'; $result=$mysqli->query($query); if ($result){echo '刪除操作執行成功'; }else {echo '刪除操作執行失敗'; } $mysqli->close();?>

保存記錄(insert)、修改記錄(update)的操作與刪除記錄(delete)的操作類似,將SQL語句進行相應的修改即可。

4、預處理語句

使用預處理語句可提高重復使用語句的性能,在PHP中,使用prepare()方法來進行預處理語句查詢,使用execute()方法來執行預準備語句。PHP有兩種預處理語句:一種是綁定結果,另一種是綁定參數。

(1)綁定結果

所謂綁定結果就是把PHP腳本中的自定義變量綁定到結果集中的相應字段上,這些變量就代表著所查詢的記錄,綁定結果的示例代碼如下:

<?php $mysqli=new mysqli('localhost','root','root','sunyang'); //實例化mysqli $query='select * from employee'; $result=$mysqli->prepare($query); //進行預準備語句查詢 $result->execute(); //執行預準備語句 $result->bind_result($id,$number,$name,$age); //綁定結果 while ($result->fetch()) {echo $id;echo $number;echo $name;echo $age; } $result->close(); //關閉預準備語句 $mysqli->close(); //關閉連接?>

在綁定結果的時候,腳本中的變量要與結果集中的字段一一對應,綁定完以后,通過fetch()方法將綁定在結果集中的變量一一取出來,最后將預處理和數據庫連接分別關閉。

(2)綁定參數

所謂綁定參數就是把PHP腳本中的自定義變量綁定到SQL語句中的參數(參數使用 “?”代替)上,綁定參數使用bind_param()方法,該方法的語法格式如下:

bool bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

在上述語法中涉及到的參數說明如下。

types:綁定的變量的數據類型,它接受的字符種類包括4個,如下表所示(參數types接受的字符的種類和綁定的變量需要一一對應)。字符種類代表的數據類型IintegerDdoubleSstringBblobvar1:綁定的變量,其數量必須要與SQL語句中的參數數量保持一致。

綁定參數的示例代碼如下:

<?php $mysqli=new mysqli('localhost','root','root','sunyang'); //實例化mysqli $query='insert into employee (emp_number,emp_name,emp_age) values (?,?,?)'; $result=$mysqli->prepare($query); $result->bind_param('ssi',$number,$name,$age); //綁定參數 $number=’sy0807’; $name=’employee7’; $age=20; $result->execute(); //執行預準備語句 $result->close(); $mysqli->close();?>

在一個腳本中還可以同時綁定參數和綁定結果,示例代碼如下:

<?php $mysqli=new mysqli('localhost','root','root','sunyang'); //實例化mysqli $query='select * from employee where emp_id < ?'; $result=$mysqli->prepare($query); $result->bind_param('i',$emp_id); //綁定參數 $emp_id=4; $result->execute(); $result->bind_result($id,$number,$name,$age); //綁定結果 while ($result->fetch()) {echo $id.'<br>';echo $number.'<br>';echo $name.'<br>';echo $age.'<br>'; } $result->close(); $mysqli->close();?>5、多個查詢

mysqli擴展提供了能連續執行多個查詢的multi_query()方法,該方法的語法格式如下:

bool mysqli_multi_query ( mysqli $link , string $query )

在執行多個查詢時,除了最后一個查詢語句,每個查詢語句之間要用“;”分開。執行多個查詢的示例代碼如下:

$mysqli=new mysqli('localhost','root','root','sunyang'); //實例化mysqli $query = 'select emp_name from employee ;'; $query .= 'select dep_name from depment '; if ($mysqli->multi_query($query)) { //執行多個查詢do { if ($result = $mysqli->store_result()) {while ($row = $result->fetch_row()) { echo $row[0]; echo '<br>';}$result->close(); } if ($mysqli->more_results()) {echo ('-----------------<br>'); //連個查詢之間的分割線 }} while ($mysqli->next_result()); } $mysqli->close();//關閉連接?>

在上述代碼中,store_result()方法用于獲得一個緩沖結果集; fetch_row()方法的作用類似于fetch_array()方法;more_results()方法用于從一個多查詢中檢查是否還有更多的查詢結果;next_result()方法用于從一個多查詢中準備下一個查詢結果。

6、事務操作

首先只有數據庫中表的類型為InnoDB時,才支持事務提交,建議使用InnoDB,更建議使用mysqli擴展庫了,不僅因為mysqli支持多條sql查詢,更是因為它的速度、性能、安全更可靠,而且完全面向對象,當然也可以是面向過程操作。

看下面mysqli對事務操作的php代碼:

<?php header('Content:text/html;charset=utf-8'); /*mysqli面向過程操作www.phpddt.com*/ $mysqli = new mysqli(’localhost’,’root’,’’,’test’); $mysqli->query('set names utf8'); if ($mysqli->connect_error){die('連接錯誤:'.$mysqli->connect_error); } //將事務提交設為false $mysqli->autocommit(false); $sql = 'insert into `user` values(null,’小紅’,md5(123),’321321’)'; $sql2 = 'insert into `user` values(null,’小王’,md5(321),’dasf’)'; //執行操作,返回的是bool值 $query = $mysqli->query($sql); $query2 = $mysqli->query($sql2); if ($query && $query2){$mysqli->commit();echo '操作成功'; }else{echo '操作失敗'.$mysqli->error;$mysqli->rollback(); } $mysqli->autocommit(true); $mysqli->close();?>

標簽: PHP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩在线电影| 久久天堂影院| 国产精品成人一区二区网站软件| 欧美成人午夜| 日韩精品首页| 91亚洲一区| 精品国产亚洲一区二区三区在线 | 伊人影院久久| 欧美sm一区| 久久精品九色| 国产极品模特精品一二| 五月综合激情| 99久久九九| 99久久久久国产精品| 六月婷婷综合| av中文资源在线资源免费观看| 久久久久久亚洲精品美女| 国产精品三级| 国产免费久久| 国产伦理一区| 国产精品亚洲欧美一级在线| 欧美日韩亚洲一区在线观看| 欧美一级全黄| 欧美一区影院| 国产伦理一区| 久久国产精品美女| 97精品久久| 91成人在线网站| 国产日韩1区| 精品亚洲自拍| 亚洲综合在线电影| 精品在线91| 美女精品在线| 综合一区在线| 国产人成精品一区二区三| 国产欧美一区二区三区国产幕精品| 91精品在线免费视频| 日本精品一区二区三区在线观看视频| 亚洲一区二区小说| 日韩精品久久久久久| 久久精品凹凸全集| 欧美在线黄色| 久久精品理论片| 都市激情国产精品| 欧产日产国产精品视频| 精品一区亚洲| 亚洲日本久久| 国产精品久久久久久久久久齐齐| 精品三级在线观看视频| 伊人久久国产| 尤物在线精品| 国产91久久精品一区二区| 中文在线一区| 日韩av成人高清| 精品国产精品久久一区免费式 | 黄色日韩在线| 亚洲欧美久久久| 日韩精品电影一区亚洲| 国产精品流白浆在线观看| 国产成人久久精品一区二区三区| 日韩精品首页| 日韩精品第一| 99精品电影| 国产日韩视频在线| 欧美日韩国产在线观看网站| 国产精品www.| 蜜臀av一区二区三区| 久久99蜜桃| 亚洲涩涩av| 91精品一区二区三区综合在线爱| 国产视频一区二区在线播放| 午夜电影亚洲| 中文字幕在线看片| 国产女人18毛片水真多18精品| 黄色在线一区| se01亚洲视频| 免费日韩成人| 亚洲精品影视| 国产综合亚洲精品一区二| 九九久久国产| 奇米狠狠一区二区三区| 欧美综合二区| 久久人人88| 精品国产三区在线| 欧美日韩精品一区二区三区在线观看| 在线亚洲自拍| 亚洲天堂黄色| 秋霞影院一区二区三区 | 日本欧美一区二区| 亚洲少妇诱惑| 久久中文字幕av一区二区不卡| 久久久久伊人| 国产精品任我爽爆在线播放| 蜜桃av一区二区在线观看| 国内精品99| 日本黄色精品| 欧美亚洲综合视频| 亚洲男女自偷自拍| 亚洲国产专区| 国产精选在线| 成人精品国产亚洲| 麻豆久久久久久| 国产乱码精品| 国产日韩一区| 久久精品99久久久| 日韩av一二三| 日韩成人精品一区二区三区| 日韩影院免费视频| 亚洲作爱视频| 国产精品普通话对白| 米奇777超碰欧美日韩亚洲| 精品一区二区三区在线观看视频| 国产精区一区二区| 国产精品调教| 久久国产精品美女| 久久亚州av| 日韩av在线中文字幕| 97人人精品| 日韩av免费| 欧美不卡在线| 亚洲综合不卡| 一区二区三区国产在线| 视频在线在亚洲| 亚洲精品看片| 日韩不卡在线观看日韩不卡视频 | 色综合视频一区二区三区日韩| 亚洲色图网站| 日韩中出av| 日韩影院免费视频| 亚洲欧洲日韩| 久久激情五月激情| 久久精品999| 精品视频在线观看网站| 色综合狠狠操| 久久国产亚洲| 伊人久久亚洲美女图片| 亚洲自拍另类| 日韩高清一区在线| 国产精品高清一区二区| 久久一区精品| 91精品国产自产在线观看永久∴| 91成人精品视频| 中文不卡在线| 久久狠狠久久| 成人午夜在线| 激情欧美一区二区三区| 丝袜美腿成人在线| 欧美日本不卡| 98精品视频| 99国产精品自拍| 亚洲精品三级| 国产精品videossex| 91亚洲国产高清| 在线看片不卡| 日韩av影院| 麻豆视频在线观看免费网站黄| 久久免费大视频| 一本综合精品| 精品国产亚洲一区二区三区| 1024精品一区二区三区| 中文字幕亚洲精品乱码| 国产精品一区2区3区| 日韩精品第一区| 老司机久久99久久精品播放免费| 亚洲三级精品| 国内精品伊人| 亚洲欧洲一区| 日本不卡在线视频| 国产精品蜜芽在线观看| 欧美特黄一级| 久久国产人妖系列| 日本在线精品| 亚洲精品大片| jizzjizz中国精品麻豆| 久久亚洲影院| 国产精品国产一区| 性欧美精品高清| 精品久久美女| 蜜桃久久av一区| 国产福利电影在线播放| 免费观看在线综合色| 国产+成+人+亚洲欧洲在线| 久久精品国产大片免费观看| 青青草国产成人99久久| 久久黄色影院| 国产精品国码视频| 在线一区视频| 精品资源在线| 亚洲免费福利一区| 欧洲一区二区三区精品| 亚洲精品系列| 久久青草久久| 国产精品v一区二区三区| 亚洲精品网址| 国产不卡av一区二区| 日韩一区二区三区免费视频| 久久精品国产99久久| 日本aⅴ亚洲精品中文乱码| 99久久婷婷| 精品国产亚洲一区二区三区大结局|