摘要:起步由于連接方式被廢除,據(jù)說在中要使用還需要額外下載組件。使用有面向過程和面向?qū)ο髢煞N方式。
起步
由于mysql連接方式被廢除,據(jù)說在php7中要使用mysql_connect()還需要額外下載組件。
使用mysqli有面向過程和面向?qū)ο髢煞N方式。
mysqli提供了三個類:
mysqli 連接相關(guān)的
mysqli_result 處理結(jié)果集
mysqli_stmt 預處理類
數(shù)據(jù)庫連接set_charset("utf8");//或者 $mysqli->query("set names "utf8"") //關(guān)閉連接 $mysqli->close(); //面向過程方式的連接方式 $mysqli = mysqli_connect($db_host, $db_user, $db_pwd, $db_name); //判斷是否連接成功 if(!$mysqli ){ echo mysqli_connect_error(); } //關(guān)閉連接 mysqli_close($mysqli); ?>數(shù)據(jù)庫查詢
通用:執(zhí)行sql語句都可用query(sql),執(zhí)行失敗會返回false,select成功則返回結(jié)果集對象,其他返回true,只要不是false就說明sql語句執(zhí)行成功了。
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();
有結(jié)果集
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注入的產(chǎn)生,mysqli_stmt是預處理類
prepare($sql); //綁定參數(shù) 第一個參數(shù)為綁定的數(shù)據(jù)類型 /* i:integer 整型 d:double 浮點型 s:string 字符串 b:a blob packets blob數(shù)據(jù)包 */ $name = "xiaoming"; $address = "affffdressss"; $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; //關(guān)閉 $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(); //獲取結(jié)果集 $result = $stmt->get_result();//結(jié)果集取后的操作就和之前一樣了 //獲取所有數(shù)據(jù) $data = $result->fetch_all(MYSQLI_ASSOC); $result->close(); $mysqli->close();
一次執(zhí)行多條sql語句multiquery(不推薦),執(zhí)行結(jié)果不是結(jié)果集,affectd_rows是最后影響的條數(shù)
multi_query($sql); if($result === false){ echo $mysqli->error; } $mysqli->close();
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21168.html
摘要:千鋒出品之天龍八部操作必須先開啟擴展函數(shù)庫首先先開啟開啟成功呢我就可以開始連接數(shù)據(jù)庫了,第一步連接數(shù)據(jù)庫服務(wù)器地址用戶名,密碼第二步判斷連接數(shù)據(jù)庫是否成功連接錯誤號連接錯誤信息第三步選擇數(shù)據(jù)庫數(shù)據(jù)庫名稱第四步設(shè)置字符集第五步準備語句表名第六 千鋒PHP出品之天龍八部: Php操作mysql必須先開啟mysq擴展函數(shù)庫 首先先開啟extension = mysqli_dll; ...
摘要:操作操作的三種方式非永久連接,性能比較低,以后廢棄永久連接,減輕服務(wù)器壓力,只支持能實現(xiàn)的常用功能,支持大部分數(shù)據(jù)庫擴展查看函數(shù)配置文件方式連接數(shù)據(jù)庫設(shè)置的字符集連接數(shù)據(jù)庫選擇數(shù)據(jù)庫設(shè)置字符集方式執(zhí)行語句對之類的操作,執(zhí)行成功時返回出錯 PHP操作MySQL PHP操作MySQL的三種方式: MySQL:非永久連接,性能比較低,PHP5.5以后廢棄; MySQLi:永久連接,...
摘要:開發(fā)中,使用擴展來鏈接數(shù)據(jù)庫進行增刪改查等操作。從起這個擴展已經(jīng)被廢棄,并且從開始被移除。擴展允許我們訪問及以上版本提供的功能。相關(guān)概念與都是方面的函數(shù)集。多次運行將使用同一連接進程,減少了服務(wù)器的開銷。版本為只能使用擴展。 PHP開發(fā)中,使用Mysql擴展來鏈接Mysql數(shù)據(jù)庫進行增刪改查等操作。 在選擇Mysql擴展的時候,官方提供了兩種: MySQL 原始版。 http://cn...
閱讀 3405·2022-01-04 14:20
閱讀 3119·2021-09-22 15:08
閱讀 2209·2021-09-03 10:44
閱讀 2324·2019-08-30 15:44
閱讀 1502·2019-08-29 18:40
閱讀 2669·2019-08-29 17:09
閱讀 2996·2019-08-26 13:53
閱讀 3227·2019-08-26 13:37