日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php mysqli还原数据库,PHP mysqli操作数据库

發(fā)布時間:2025/3/19 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php mysqli还原数据库,PHP mysqli操作数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

起步

由于mysql連接方式被廢除,在php7中要使用mysql_connect()還需要額外下載組件。

使用mysqli有面向過程和面向對象兩種方式。

mysqli提供了三個類:

● mysqli 連接相關的

● mysqli_result 處理結果集

● mysqli_stmt 預處理類

數(shù)據(jù)庫連接<?php

$db_host = 'localhost';

$db_name = 'test';

$db_user = 'root';

$db_pwd = '';

//面向對象方式

$mysqli = new mysqli($db_host, $db_user, $db_pwd, $db_name);

//面向對象的昂視屏蔽了連接產生的錯誤,需要通過函數(shù)來判斷

if(mysqli_connect_error()){

echo mysqli_connect_error();

}

//設置編碼

$mysqli->set_charset("utf8");//或者 $mysqli->query("set names 'utf8'")

//關閉連接

$mysqli->close();

//面向過程方式的連接方式

$mysqli = mysqli_connect($db_host, $db_user, $db_pwd, $db_name);

//判斷是否連接成功

if(!$mysqli ){

echo mysqli_connect_error();

}

//關閉連接

mysqli_close($mysqli);

?>

數(shù)據(jù)庫查詢

通用:執(zhí)行sql語句都可用query(sql),執(zhí)行失敗會返回false,select成功則返回結果集對象,其他返回true,只要不是false就說明sql語句執(zhí)行成功了。<?php

//無結果集示例

$sql = "insert into table_name (`name`, `address`) values ('xiaoming', 'adddddrrreess')";

$result = $mysqli->query($sql);

//或者

$sql = "delete from table_name where name='xiaoming'";

$result = $mysqli->query($sql);

if($result === false){

echo $mysqli->error;

echo $mysqli->errno;

}

//影響條數(shù)

echo $mysqli->num_rows;

//插入的id

echo $mysqli->insert_id;

$mysqli->close();

有結果集<?php

$sql = "select * from table_name";

$result = $mysqli->query($sql);

if($result === false){//執(zhí)行失敗

echo $mysqli->error;

echo $mysqli->errno;

}

//行數(shù)

echo $result->num_rows;

//列數(shù) 字段數(shù)

echo $result->field_count;

//獲取字段信息

$field_info_arr = $result->fetch_fields();

//移動記錄指針

//$result->data_seek(1);//0 為重置指針到起始

//獲取數(shù)據(jù)

while($row = $result->fetch_assoc()){

echo $row['name'];

echo $row['address'];

}

//也可一次性獲取所有數(shù)據(jù)

//$result->data_seek(0);//如果前面有移動指針則需重置

$data = $result->fetch_all(MYSQLI_ASSOC);

$mysqli->close();

預處理示例

預處理能有效的防止sql注入的產生,mysqli_stmt是預處理類<?php

$sql = "insert inro table_name ('name','address') values (?,?)";

//獲得預處理對象

$stmt = $mysqli->prepare($sql);

//綁定參數(shù) 第一個參數(shù)為綁定的數(shù)據(jù)類型

/*

i:integer 整型

d:double 浮點型

s:string 字符串

b:a blob packets blob數(shù)據(jù)包

*/

$name = "xiaoming";

$address = "adddressss";

$stmt->bind_param("ss", $name, $address);//綁定時使用變量綁定

//執(zhí)行預處理

$stmt->execute();

/*

//可重新綁定 多次執(zhí)行

$stmt->bind_param("ss", $name, $address);

$stmt->execute();

*/

//插入的id 多次插入為最后id

echo $stmt->insert_id;

//影響行數(shù) 也是最后一次執(zhí)行的

echo $stmt->affected_rows;

//錯誤號

echo $stmt->errno;

//錯誤信息

echo $stmt->error;

//關閉

$stmt->close();

$mysqli->close();

下面示例select的預處理

//注釋部分省略

$sql = "select * from table_name where id";

$stmt = $mysqli->prepare($sql);

$id = 30;

$stmt->bind_param("i", $id);

$stmt->execute();

//獲取結果集

$result = $stmt->get_result();//結果集取后的操作就和之前一樣了

//獲取所有數(shù)據(jù)

$data = $result->fetch_all(MYSQLI_ASSOC);

$result->close();

$mysqli->close();

一次執(zhí)行多條sql語句multiquery(不推薦),執(zhí)行結果不是結果集,affectd_rows是最后影響的條數(shù)<?php

$sql_arr = array(

"insert into table_name (`name`,`address`) values ('xiaoming','a')",

"insert into table_name (`name`,`address`) values ('xiaohong','a')",

'delete from table_name where id=23',

);

$sql = implode(';', $sql_arr);

$result = $mysqli->multi_query($sql);

if($result === false){

echo $mysqli->error;

}

$mysqli->close();

更多的PHP相關知識,請訪問PHP中文網(wǎng)!

總結

以上是生活随笔為你收集整理的php mysqli还原数据库,PHP mysqli操作数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。