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

您的位置:首頁技術(shù)文章
文章詳情頁

PHP擴(kuò)展小試牛刀系列之?dāng)?shù)據(jù)庫擴(kuò)展mysqli詳細(xì)使用教程

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

PHP擴(kuò)展小試牛刀系列之?dāng)?shù)據(jù)庫擴(kuò)展mysqli詳細(xì)使用教程

mysqli提供了面向?qū)ο蠛兔嫦蜻^程兩種方式來與數(shù)據(jù)庫交互,分別看一下這兩種方式。

1、面向?qū)ο?p>在面向?qū)ο蟮姆绞街校琺ysqli被封裝成一個類,它的構(gòu)造方法如下:

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

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

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

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

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

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

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

關(guān)閉與MySQL服務(wù)器的連接通過mysqli對象調(diào)用close()方法即可,例如:

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

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

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

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

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

關(guān)閉與MySQL服務(wù)器的連接使用mysqli_close()函數(shù),例如:

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

使用mysqli存取數(shù)據(jù)也包括面向?qū)ο蠛兔嫦蜻^程兩種方式,在本節(jié)我們只討論如何使用面向?qū)ο蟮姆绞絹砼cMySQL交互,關(guān)于mysqli擴(kuò)展中使用面向過程方式這里就不再詳細(xì)介紹了,有興趣的讀者可參考官方文檔來獲取相關(guān)的資料。

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

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

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

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

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

<?php $mysqli=new mysqli('localhost','root','root','sunyang'); //實例化mysqli $query='select * from employee'; $result=$mysqli->query($query); if ($result) {if($result->num_rows>0){ //判斷結(jié)果集中行的數(shù)目是否大于0 while($row =$result->fetch_array() ){ //循環(huán)輸出結(jié)果集中的記錄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為結(jié)果集的一個屬性,返回結(jié)果集中行的數(shù)目。方法fetch_array()將結(jié)果集中的記錄放入一個數(shù)組中并將其返回。最后使用free()方法將結(jié)果集中的內(nèi)存釋放,使用close()方法將數(shù)據(jù)庫連接關(guān)閉。

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

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

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

4、預(yù)處理語句

使用預(yù)處理語句可提高重復(fù)使用語句的性能,在PHP中,使用prepare()方法來進(jìn)行預(yù)處理語句查詢,使用execute()方法來執(zhí)行預(yù)準(zhǔn)備語句。PHP有兩種預(yù)處理語句:一種是綁定結(jié)果,另一種是綁定參數(shù)。

(1)綁定結(jié)果

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

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

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

(2)綁定參數(shù)

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

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

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

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

綁定參數(shù)的示例代碼如下:

<?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); //綁定參數(shù) $number=’sy0807’; $name=’employee7’; $age=20; $result->execute(); //執(zhí)行預(yù)準(zhǔn)備語句 $result->close(); $mysqli->close();?>

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

<?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); //綁定參數(shù) $emp_id=4; $result->execute(); $result->bind_result($id,$number,$name,$age); //綁定結(jié)果 while ($result->fetch()) {echo $id.'<br>';echo $number.'<br>';echo $name.'<br>';echo $age.'<br>'; } $result->close(); $mysqli->close();?>5、多個查詢

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

bool mysqli_multi_query ( mysqli $link , string $query )

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

$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)) { //執(zhí)行多個查詢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();//關(guān)閉連接?>

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

6、事務(wù)操作

首先只有數(shù)據(jù)庫中表的類型為InnoDB時,才支持事務(wù)提交,建議使用InnoDB,更建議使用mysqli擴(kuò)展庫了,不僅因為mysqli支持多條sql查詢,更是因為它的速度、性能、安全更可靠,而且完全面向?qū)ο螅?dāng)然也可以是面向過程操作。

看下面mysqli對事務(wù)操作的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); } //將事務(wù)提交設(shè)為false $mysqli->autocommit(false); $sql = 'insert into `user` values(null,’小紅’,md5(123),’321321’)'; $sql2 = 'insert into `user` values(null,’小王’,md5(321),’dasf’)'; //執(zhí)行操作,返回的是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();?>

標(biāo)簽: PHP
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
蜜桃成人精品| 精品久久影院| 日韩免费久久| 伊伊综合在线| 九一精品国产| 欧美另类综合| 日韩三区在线| 神马日本精品| 欧美精品自拍| 免费一级片91| 亚洲最大av| 欧美激情 亚洲a∨综合| 久久字幕精品一区| 日韩精品第一区| 婷婷亚洲五月色综合| 丝瓜av网站精品一区二区| 日韩av网站在线免费观看| 国产欧美大片| 日本欧美不卡| 久久夜色精品| 久久成人福利| 日韩另类视频| 爽好多水快深点欧美视频| 欧美一区精品| 久久要要av| 久久国产尿小便嘘嘘| 亚洲天堂资源| 午夜精品影视国产一区在线麻豆| 国产精品视频一区二区三区四蜜臂 | 日韩高清成人| 99riav国产精品| 国产精品对白| 国产一区白浆| 美女福利一区二区三区| 欧美成人高清| 国产精品一区二区三区av麻| 欧美午夜不卡| 日本一区二区免费高清| 日韩高清三区| aa国产精品| 日本综合字幕| 国产精品色在线网站| 国产视频一区欧美| 久久久久蜜桃| 五月激情久久| 久久久男人天堂| 国产欧美一区二区精品久久久 | 亚洲国产专区校园欧美| 欧美另类中文字幕 | 精品午夜久久| 日本欧美韩国一区三区| 亚洲在线免费| 欧美日韩国产一区二区三区不卡| 久久av影院| 日韩国产欧美一区二区三区| 美女精品在线| 亚洲在线一区| 九九综合九九| 欧美成人基地| 日本一二区不卡| 色综合五月天| 蜜桃成人精品| 一区二区三区四区在线看| 欧美午夜精品一区二区三区电影| 国产suv精品一区二区四区视频 | 成人国产精品一区二区免费麻豆| 国产欧美日韩在线一区二区| 亚洲婷婷丁香| 国产欧美一区二区三区国产幕精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 午夜在线视频一区二区区别| 蜜臀久久99精品久久久久宅男| 视频福利一区| 99国产精品久久久久久久| 在线看片一区| 欧美黄色精品| 播放一区二区| 欧美综合二区| 91精品国产自产精品男人的天堂| 国产剧情一区二区在线观看| 精品三级在线观看视频| 中文另类视频| 日韩精品视频在线看| 久久精品国产亚洲一区二区三区| 精品一区二区三区中文字幕在线| 国产精品高颜值在线观看| jiujiure精品视频播放| 亚洲黄页一区| 成人日韩av| 久久的色偷偷| 天堂日韩电影| 电影亚洲精品噜噜在线观看| 婷婷视频一区二区三区| 日韩高清成人| 免费亚洲一区| 亚洲尤物av| 亚洲激情二区| 在线看片国产福利你懂的| 亚洲精品第一| 婷婷综合五月| 亚洲深夜福利在线观看| 神马午夜在线视频| 69堂免费精品视频在线播放| 只有精品亚洲| 中文一区在线| 石原莉奈在线亚洲三区| 亚洲国产一区二区三区在线播放| 青青久久av| 日韩在线短视频| 亚洲午夜天堂| 日韩午夜av在线| 精品91久久久久| 久久国产亚洲精品| 日韩成人高清| 黄色日韩在线| 丝袜脚交一区二区| 亚洲视频www| 国产亚洲精品v| 免费看黄色91| 中文字幕一区二区三区日韩精品 | 国产成人精品一区二区免费看京 | 高清一区二区三区av| 日本在线一区二区三区| 国产日韩精品视频一区二区三区| 亚洲a级精品| 亚洲ab电影| 精品久久中文| 国户精品久久久久久久久久久不卡| 日韩精品2区| 亚洲一区二区动漫| 亚洲综合图色| 精品三级久久久| 国产精品av久久久久久麻豆网| 美女少妇全过程你懂的久久| 中文字幕亚洲影视| 日本va欧美va欧美va精品| 精品久久在线| 亚洲神马久久| 国产精品白丝一区二区三区| 久久精品91| 国产精品1区| 亚洲a成人v| 欧美精品观看| 国产麻豆精品久久| 精品一区二区三区亚洲| 国产激情精品一区二区三区| www在线观看黄色| 亚洲综合在线电影| 99在线观看免费视频精品观看| 热久久国产精品| 欧美在线不卡| 丰满少妇一区| 国产一区清纯| 亚洲aa在线| 精品资源在线| re久久精品视频| 国产精品一国产精品| 精品国产欧美日韩| 国产精品视区| 捆绑调教美女网站视频一区| 久久久久久免费视频| 亚洲一区二区三区高清不卡| 久久国产日韩欧美精品| 国产传媒在线观看| 亚洲色图网站| 日韩久久一区二区三区| 蜜桃av一区二区在线观看| 国产一区二区三区久久| 日韩一区二区三区高清在线观看| 久久99精品久久久久久园产越南| 日本精品黄色| 亚洲欧美在线专区| 国产一区二区精品福利地址| 亚洲激情偷拍| 激情亚洲影院在线观看| 日本精品国产| 六月婷婷一区| 久久亚洲成人| 成人美女视频| 国产免费播放一区二区| 蜜桃免费网站一区二区三区| 日韩大片在线观看| 美腿丝袜在线亚洲一区| 亚洲+小说+欧美+激情+另类| 欧美日韩高清| 麻豆国产精品| 欧美激情日韩| 国产欧美另类| 色婷婷成人网| 亚洲三级网址| 美女黄网久久| 蜜臀av在线播放一区二区三区| 成人av二区| 99久久视频| 欧美精品一区二区久久| 91精品综合| 一本一道久久a久久精品蜜桃| 久久免费黄色| 亚洲精品网址| 蜜臀av一区二区在线免费观看|