天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP5 操作MySQL數據庫基礎代碼

1. 建立數據庫連接
復制代碼 代碼如下:
<?php
$mysqli = new mysqli("localhost","root","","mydb");
?>

建立一個數據庫連接需要四個參數,分別為數據庫地址、數據庫訪問用戶名、數據庫訪問密碼、數據庫名稱。除了使用上面的mysqli對象的構造方法建立數據庫連接外,還可以調用其connect方法建立數據庫的連接。
復制代碼 代碼如下:
<?php
$mysqli = new mysqli();
$mysqli->connect("localhost","root","","mydb");
?>

還可以通過mysqli對象的構造方法建立數據連接,通過select_db方法指定要訪問的數據庫。
復制代碼 代碼如下:
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb");
?>

通過mysqli對象的errno屬性獲取當前連接的錯誤號,如果當前連接沒有任何錯誤,錯誤號返回為0。
復制代碼 代碼如下:
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //判斷當前連接是否成功
{
}
else
{
echo "The Connection is Error!";
exit();
}
?>

當然可以通過mysqli對象的error屬性獲取當前連接的錯誤信息,如果沒有錯誤,返回“”。
復制代碼 代碼如下:
<?php
$mysqli = new mysqli("localhost","rootsss","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //判斷當前連接是否成功
{
}
else
{
echo $mysqli->error; //輸出當前錯誤信息
exit();
}
?>

2.查詢數據庫
查詢數據庫可以使用mysqli對象的query方法,該方法返回查詢數據庫的結果集。
語法為:$mysqli->query(查詢語句,查詢模式);
查詢模式有兩種:
① MYSQLI_STORE_RESULT。將結果作為一個緩存集進行返回,這說明可以立即對整個結果集進行導航。該設置為默認設置。結果集查詢出來后就放入內存中,這就代表如果結果集內數據量很大則會占用較多的內存。但是利用這種方式我們可以很容易知道一個查詢返回了多少行記錄或希望立即跳到結果集的某一行。
② MYSQLI_USE_RESULT。將結果集作為一個非緩存集返回。這就代表會根據需要從數據庫服務器獲取結果集,對于較大的結果集數據這樣做可以提高性能。但是會導致很多對結果集的操作受到限制,比如獲取查詢行數等。
復制代碼 代碼如下:
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //判斷當前連接是否成功
{
$sql = "SELECT * FROM student";
$result = $mysqli->query($sql);
echo "Result row nums:".$result->num_rows."<br>"; //顯示結果集數量
//迭代結果集
while(list($id,$name,$age,$address) = $result->fetch_row())
{
echo "$id : $name : $age : $address"."<br>";
}
}
else
{
echo $mysqli->error; //輸出當前錯誤信息
exit();
}
?>

使用結果集對象的fetch_row方法獲取結果集中每一行數據,每一行數據為一個關聯數組,并使用list方法將其中的每個數據進行輸出。還可以使用輸出對象的方式將結果集中的每一行進行輸出。
復制代碼 代碼如下:
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //判斷當前連接是否成功
{
$sql = "SELECT * FROM student";
$result = $mysqli->query($sql);
echo "Result row nums:".$result->num_rows."<br>"; //顯示結果集數量
//迭代結果集
while($rowObject = $result->fetch_object())
{
echo "$rowObject->id : $rowObject->name : $rowObject->age : $rowObject->address"."<br>";
}
}
else
{
echo $mysqli->error; //輸出當前錯誤信息
exit();
}
?>

其中使用fetch_object方法將每一行中的數據封裝為一個對象,在上面的例子中該對象為$rowObject,數據庫中每一列成為該對象的屬性,通過該對象調用其屬性名稱就可以獲取對應的字段值。比如獲取學生姓名$rowObject->name。
還可以使用fetch_array方法將每一行數據返回為一個關聯數組或是一個索引數組,或者同時返回關聯數組和索引數組。fetch_array方法的模式參數來指定當前返回數組的模式:
① MYSQLI_ASSOC。返回關聯數組,key為字段名,value為字段值。
② MYSQLI_NUM。返回索引數組,返回順序和查詢字段順序相同。
③ MYSQLI_BOTH。同時返回關聯數組和索引數組。默認設置。
復制代碼 代碼如下:
<?php
while($row = $result->fetch_array(MYSQLI_ASSOC)) //返回關聯數組
{
echo $row['id']. $row['name'].$row['age'].$row['address']."<br>";
}
?>


復制代碼 代碼如下:
<?php
while($row = $result->fetch_array(MYSQLI_NUM)) //返回索引數組
{
echo $row[0]. $row[1].$row[2].$row[3]."<br>";
}
?>

3.釋放內存
如果結果集中數據量巨大并且已經使用完畢后,結果集對象的free方法用于釋放結果集占用的內存。一旦調用了free方法,結果集將不再可用。
復制代碼 代碼如下:
<?php
...
$result->free(); //釋放內存
?>

4.添加、修改和刪除操作
使用mysqli對象的query方法依然可以進行對數據庫的添加、修改和刪除操作,只不過是SQL語句的不同而已。我們以添加數據為例:
復制代碼 代碼如下:
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //判斷當前連接是否成功
{
$sql = "INSERT INTO student(id,name,age,address) VALUES('8','kay','23','xian')";
$result = $mysqli->query($sql);
echo $mysqli->affected_rows; //輸出影響的行數
}
else
{
echo $mysqli->error; //輸出當前錯誤信息
exit();
}
?>

調用mysqli對象的affected_rows屬性可以獲取影響的行數。
5.關閉數據庫連接
當一個數據庫連接使用完畢后調用mysqli對象的close方法將其關閉。
復制代碼 代碼如下:
<?php
...
$mysqli->close();
?>

6.使用綁定參數
php中的綁定參數和Java中的預處理SQL是相同的原理,當反復執行一個SQL時,SQL的參數不定時可以使用綁定參數方式可以提升SQL的執行速度.
復制代碼 代碼如下:
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //判斷當前連接是否成功
{
$sql = "INSERT INTO student(id,name,age,address) VALUES(?,?,?,?)";
$stmt = $mysqli->stmt_init(); //創建預處理對象
$stmt->prepare($sql); //對SQL進行預處理
$stmt->bind_param("isis",$id,$name,$age,$address); //設置綁定的變量 第一個參數為變量的數據類型
for($i = 12;$i<100;$i++)
{
$id = $i + 1;
$name = "樊凱";
$age = 23;
$address = "xian";
$stmt->execute(); //執行SQL語句
}
echo $mysqli->affected_rows; //輸出影響的行數
$stmt->close(); //釋放預處理對象占用的內存
$mysqli->close(); //關閉數據庫連接
}
else
{
echo $mysqli->error; //輸出當前錯誤信息
exit();
}
?>

需要注意的是bind_param方法的第一個參數,該參數指定了后面的變量的數據類型,這些數據類型如下所示:
① i : 所有的Integer類型。
② d : 所有的double和float類型。
③ b : Blob類型。
④ s : 其他數據類型包括字符串。
7.結果綁定
結果綁定用于將查詢結果和一些變量進行綁定。
復制代碼 代碼如下:
<?php
$mysqli = new mysqli("localhost","root","");
$mysqli->select_db("mydb");
if($mysqli->errno == 0) //判斷當前連接是否成功
{
$sql = "SELECT * FROM student";
$stmt = $mysqli->stmt_init(); //創建預處理對象
$stmt->prepare($sql); //對SQL進行預處理
$stmt->bind_result($id,$name,$age,$address); //將查詢結果字段綁定到變量中
$stmt->execute(); //執行SQL語句
while($stmt->fetch()) //fetch方法用于獲取結果集中的每一行,并將相應字段值賦給變量
{
echo "$id : $name : $age : $address"."<br>";
}
$stmt->close(); //釋放預處理對象占用的內存
$mysqli->close(); //關閉數據庫連接
}
else
{
echo $mysqli->error; //輸出當前錯誤信息
exit();
}
?>

php技術PHP5 操作MySQL數據庫基礎代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 好湿好紧水多AAAAA片秀人网 | 学生妹被爆插到高潮无遮挡 | 色欲档案之麻雀台上淫 | 日日摸夜夜嗷嗷叫日日拍 | 果冻传媒2021一二三在线观看 | 十大禁止安装的黄台有风险 | 外女思春台湾三级 | 欲香欲色天天天综合和网 | 亚洲地址一地址二地址三 | 99视频在线免费观看 | 国产精品一区二区三区四区五区 | 蜜桃无码AV视频在线观看 | 亚洲色欲国产免费视频 | 国产中文字幕一区 | 黄页网站免费视频大全9 | 久久妇女高潮几次MBA | 久久九九亚洲精品 | 毛片手机在线 | 小SAO货边洗澡边CAO你动漫 | 亚洲精品线在线观看 | 亚洲视频中文字幕在线观看 | 甜性涩爱全集在线观看 | 亚洲中文热码在线视频 | 亚洲国产成人99精品激情在线 | 久久综合丁香激情久久 | 免费毛片网站在线观看 | 国产99久久亚洲综合精品西瓜tv | 欲乱艳荡少寡妇全文免费 | 日本久久道一区二区三区 | 中文字幕亚洲乱码熟女在线 | 永久午夜福利视频一区在线观看 | 青青草原亚洲 | 久久偷拍国2017的 | 美女搜查官被高难度黑人在线播放 | 99re这里只有精品视频 | 欧美00后rapper潮水 | 又长又大又粗又硬3p免费视频 | 亚洲不卡视频在线 | 丰满女朋友在线观看中文 | 扒开她的黑森林让我添动态图 | 俄罗斯乌克兰战争原因 |