PHP Mysqli 常用程式碼集合
- 2019 年 11 月 29 日
- 筆記
PHP5.0開始,不僅可以使用早期的mysql資料庫擴展函數,還能使用新擴展的mysqli技術實現與mysql資料庫的資訊交流,PHP的mysqli擴展被封裝在在一個類中,它是一種面向對象技術,只能在PHP5和MYSQL4,1或更高的版本才能使用,(i)表示該進,使用mysqli,執行速度更快,更方便,更高效,也可以使資料庫訪問更安全(因為用類模式) 使用mysqli 簡單流程
設置PHP.ini 配置文件 extension=php_mysqli.dll
創建連接:

檢測連接:

獲取資料庫返回值:

關閉連接:

常用語法:
INSERT INTO [表名] ([欄位1],[欄位2]) VALUES ([值1],[值2]); SELECT * FROM [表名] WHERE [表達式] ORDER BY [欄位1],[ASC/DESC 升/降] [欄位2],[ASC/DESC 升/降]; DELETE FROM [表名] WHERE [表達式]; UPDATE [表名] SET [欄位1]=[值1],[欄位2]=[值2] WHERE [表達式]; 獲取總行數:SELECT COUNT(*) FROM [表]
中文亂碼:

以下是一些實例
連接mysqli
建立MYSQL配置文件 config.ini.php
config.ini.php 內容如下:

用mysqli鏈接MYSQL資料庫:

查詢:

三種處理查詢結果:

關聯數組,就是嵌套的數組 如:

使用 mysqli_stmt 類
mysql4.1版本開始提供一種預處理(prepared statement)的機制,它可以見整個命令向MYSQL伺服器發送一次,以後只有參數變化,MYSQL只需要對命令做一次的分析就夠了,大大減少需要傳輸的數據量,還提高了命令的處理效率(注,在不需要連接時應該立刻關閉close()) 步驟:
1,預備SQL命令 $sql = "insert into user(name,pwd) values(?,?)"; $stms = $mysqli->prepare($sql); 2.綁定數據 $stms->bind_param('ss',$name,$pwd); (注意'ss':其要與後面的變數對應($name,$pwd) i 所有inerger類型 d double 或float 類型 s 所有其他類型包括字元串 b 二進位(blob,二進位位元組串) ) $name = "huang"; $pwd = "123456"; 3.執行 $stms->execute(); [4.在綁定執行另一組數據 $name = "he"; $pwd = "666666"; $stms->execute(); ] 5.關閉 $stmt->close(); $mysqli->close(); (其他有用參數) $num = $stmt->affected_rows; 受影響的行數 $id = $stmt->insert_id; 當是插入命令時,返回插入的行id(自動)
事務處理 在默認情況下,MYSQL是以自動提交(autocommit)模式運行,這就意味著所執行的每一個語句都將立即寫入資料庫中,但如果使用事務安全的表格類型,是不希望自動提交的行為的 事務處理 當執行多條MYSQL命令時,當然希望當其中一條命令出錯時,所有的命令都不執行,返回執行命令之前的狀態 這就用到事務了 簡單運用事務流程 1.寫好SQL命令 $sql1 = "insert user(name) values('huang','123456')"; $sql2 = "update account set number = number+1"; 2.關閉MYSQL事務處理的自動提交模式 $mysqli->cutocommit(0); 3.試執行命令 $success = true; $res1 = $mysqli->query($sql1); if(!$res1 or $mysqli->affected_rows !=1){ $success = false; } $res2 = $mysqli->query($sql2); if(!$res2 or $mysqli->affected_rows !=1){ $success = false; } 4.查看執行情況,都成功執行,有失敗回滾初態 if($success ){ $mysqli->commit(); echo "執行成功"; }else{ $mysqli->rollback(); echo "執行失敗"; } 5.恢復MYSQL事務處理的自動提交模式 $mysqli->cutocommit(1); $mysqli->close(); mysql 目前只有InnDB和BDB兩種數據包類型才支援事務 InnoDB最快
創建InnDB類型表:

以上就是PHP Mysqli 常用程式碼集合所有詳細內容。