摘要:起步由于連接方式被廢除,據說在中要使用還需要額外下載組件。使用有面向過程和面向對象兩種方式。
起步
由于mysql連接方式被廢除,據說在php7中要使用mysql_connect()還需要額外下載組件。
使用mysqli有面向過程和面向對象兩種方式。
mysqli提供了三個類:
mysqli 連接相關的
mysqli_result 處理結果集
mysqli_stmt 預處理類
數據庫連接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); ?>數據庫查詢
通用:執行sql語句都可用query(sql),執行失敗會返回false,select成功則返回結果集對象,其他返回true,只要不是false就說明sql語句執行成功了。
query($sql); //或者 $sql = "delete from table_name where name="xiaoming""; $result = $mysqli->query($sql); if($result === false){ echo $mysqli->error; echo $mysqli->errno; } //影響條數 echo $mysqli->num_rows; //插入的id echo $mysqli->insert_id; $mysqli->close();
有結果集
query($sql); if($result === false){//執行失敗 echo $mysqli->error; echo $mysqli->errno; } //行數 echo $result->num_rows; //列數 字段數 echo $result->field_count; //獲取字段信息 $field_info_arr = $result->fetch_fields(); //移動記錄指針 //$result->data_seek(1);//0 為重置指針到起始 //獲取數據 while($row = $result->fetch_assoc()){ echo $row["name"]; echo $row["address"]; } //也可一次性獲取所有數據 //$result->data_seek(0);//如果前面有移動指針則需重置 $data = $result->fetch_all(MYSQLI_ASSOC); $mysqli->close();預處理示例
預處理能有效的防止sql注入的產生,mysqli_stmt是預處理類
prepare($sql); //綁定參數 第一個參數為綁定的數據類型 /* i:integer 整型 d:double 浮點型 s:string 字符串 b:a blob packets blob數據包 */ $name = "xiaoming"; $address = "affffdressss"; $stmt->bind_param("ss", $name, $address);//綁定時使用變量綁定 //執行預處理 $stmt->execute(); /* //可重新綁定 多次執行 $stmt->bind_param("ss", $name, $address); $stmt->execute(); */ //插入的id 多次插入為最后id echo $stmt->insert_id; //影響行數 也是最后一次執行的 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();//結果集取后的操作就和之前一樣了 //獲取所有數據 $data = $result->fetch_all(MYSQLI_ASSOC); $result->close(); $mysqli->close();
一次執行多條sql語句multiquery(不推薦),執行結果不是結果集,affectd_rows是最后影響的條數
multi_query($sql); if($result === false){ echo $mysqli->error; } $mysqli->close();
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21168.html
摘要:千鋒出品之天龍八部操作必須先開啟擴展函數庫首先先開啟開啟成功呢我就可以開始連接數據庫了,第一步連接數據庫服務器地址用戶名,密碼第二步判斷連接數據庫是否成功連接錯誤號連接錯誤信息第三步選擇數據庫數據庫名稱第四步設置字符集第五步準備語句表名第六 千鋒PHP出品之天龍八部: Php操作mysql必須先開啟mysq擴展函數庫 首先先開啟extension = mysqli_dll; ...
摘要:操作操作的三種方式非永久連接,性能比較低,以后廢棄永久連接,減輕服務器壓力,只支持能實現的常用功能,支持大部分數據庫擴展查看函數配置文件方式連接數據庫設置的字符集連接數據庫選擇數據庫設置字符集方式執行語句對之類的操作,執行成功時返回出錯 PHP操作MySQL PHP操作MySQL的三種方式: MySQL:非永久連接,性能比較低,PHP5.5以后廢棄; MySQLi:永久連接,...
摘要:開發中,使用擴展來鏈接數據庫進行增刪改查等操作。從起這個擴展已經被廢棄,并且從開始被移除。擴展允許我們訪問及以上版本提供的功能。相關概念與都是方面的函數集。多次運行將使用同一連接進程,減少了服務器的開銷。版本為只能使用擴展。 PHP開發中,使用Mysql擴展來鏈接Mysql數據庫進行增刪改查等操作。 在選擇Mysql擴展的時候,官方提供了兩種: MySQL 原始版。 http://cn...
閱讀 3339·2022-01-04 14:20
閱讀 3110·2021-09-22 15:08
閱讀 2188·2021-09-03 10:44
閱讀 2316·2019-08-30 15:44
閱讀 1491·2019-08-29 18:40
閱讀 2655·2019-08-29 17:09
閱讀 2989·2019-08-26 13:53
閱讀 3222·2019-08-26 13:37