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 常用程式碼集合所有詳細內容。