PHP5: mysqli 插入, 查詢, 更新和刪除 Insert Update Delete Using mysqli (CRUD)


 

原文: PHP5: mysqli 插入, 查詢, 更新和刪除  Insert Update Delete Using mysqli (CRUD)

 

 

 

Selection_095

PHP 5 及以上版本建議使用以下方式連接 MySQL :

  • MySQLi extension ("i" 意為 improved)
  • PDO (PHP Data Objects)
Mysqli提供了 面向對象面向過程兩種方式來與數據庫交互,分別看一下這兩種方式。

 

1. PHP 連接 MySQL

 
1.面向對象
在面向對象的方式中,mysqli被封裝成一個類,它的構造方法如下:
__construct ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket ]]]]]] )
在上述語法中涉及到的參數說明如下。
l         host:連接的服務器地址。
l         username:連接數據庫的用戶名,默認值是服務器進程所有者的用戶名。
l         passwd:連接數據庫的密碼,默認值為空。
l         dbname:連接的數據庫名稱。
l         port:TCP端口號。
l         socket:UNIX域socket。
 

要建立與MySQL的連接可以通過其構造方法實例化mysqli類,例如下面的代碼:

Php代碼   收藏代碼
  1. <?php  
  2.     $db_host = "localhost";                                       //連接的服務器地址  
  3.     $db_user = "root";                                            //連接數據庫的用戶名  
  4.     $db_psw  = "root";                                            //連接數據庫的密碼  
  5.     $db_name = "ikeepstudying";                                   //連接的數據庫名稱  
  6.   
  7.     // 創建連接  
  8.     $conn    = new mysqli($db_host,$db_user,$db_psw,$db_name);  
  9.   
  10.     // 檢測連接  
  11.     if ($conn->connect_error) {  
  12.         die("連接失敗: " . $conn->connect_error);  
  13.         // 或者使用  
  14.         // die('Error : ('. $conn->connect_errno .') '. $conn->connect_error);  
  15.     }  
  16.     echo "連接成功";  
  17. ?>  

 

mysqli還提供了一個連接MySQL的成員方法connect()。當實例化構造方法為空的mysqli類時,用mysqli對象調用connect()方法同樣可連接MySQL,例如,下面的代碼:

Php代碼   收藏代碼
  1. <?php  
  2.     $db_host = "localhost";                                 //連接的服務器地址  
  3.     $db_user = "root";                                      //連接數據庫的用戶名  
  4.     $db_psw  = "root";                                      //連接數據庫的密碼  
  5.     $db_name = "ikeepstudying";                             //連接的數據庫名稱  
  6.     $conn    = new mysqli();  
  7.     $conn->connect($db_host,$db_user,$db_psw,$db_name);  
  8.       
  9.     // 檢測連接  
  10.     if ($conn->connect_error) {  
  11.         die("連接失敗: " . $conn->connect_error);  
  12.         // 或者使用  
  13.         // die('Error : ('. $conn->connect_errno .') '. $conn->connect_error);  
  14.     }  
  15.     echo "連接成功";  
  16. ?>  

 

關閉與MySQL服務器的連接通過mysqli對象調用close()方法即可,例如:

Php代碼   收藏代碼
  1. $conn->close();  

 

2.面向過程
在面向過程的方式中,mysqli擴展提供了函數mysqli_connect()與MySQL建立連接,該函數的語法格式如下:
mysqli_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket ]]]]]] )

mysqli_connect()函數的用法與mysql擴展中的mysql_connect()函數用法十分相似,下面是mysqli_connect()函數的用法示例:

Php代碼   收藏代碼
  1. <?php  
  2.     $servername = "localhost";  
  3.     $username   = "username";  
  4.     $password   = "password";  
  5.     $database   = "ikeepstudying";  
  6.   
  7.     // 創建連接  
  8.     $conn = mysqli_connect($servername, $username, $password, $database);  
  9.   
  10.     // 檢測連接  
  11.     if (!$conn) {  
  12.         die("Connection failed: " . mysqli_connect_error());  
  13.     }  
  14.     echo "連接成功";  
  15. ?>  

 

關閉與MySQL服務器的連接使用mysqli_close()函數,例如:

Sql代碼   收藏代碼
  1. mysqli_close();  

 

2. PHP MySQL 插入數據

在創建完數據庫和表后,我們可以向表中添加數據。

以下為一些語法規則:

  • PHP 中 SQL 查詢語句必須使用引號
  • 在 SQL 查詢語句中的字符串值必須加引號
  • 數值的值不需要引號
  • NULL 值不需要引號

INSERT INTO 語句通常用於向 MySQL 表添加新的記錄:

Sql代碼   收藏代碼
  1. INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)  
 

 

以下實例向 "MyGuests" 表添加了新的記錄:

 
1.面向對象

 

Php代碼   收藏代碼
  1. <?php  
  2. $servername = "localhost";  
  3. $username = "username";  
  4. $password = "password";  
  5. $dbname = "ikeepstudying";  
  6.   
  7. // 創建連接  
  8. $conn = new mysqli($servername, $username, $password, $dbname);  
  9. // 檢測連接  
  10. if ($conn->connect_error) {  
  11.     die("連接失敗: " . $conn->connect_error);  
  12. }  
  13.   
  14. $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')";  
  15.   
  16. if ($conn->query($sql) === TRUE) {  
  17.     echo "新記錄插入成功";  
  18. else {  
  19.     echo "Error: " . $sql . "<br>" . $conn->error;  
  20. }  
  21.   
  22. $conn->close();  
  23. ?>  
 

 

插入多條記錄:

Php代碼   收藏代碼
  1. <?php  
  2. $servername = "localhost";  
  3. $username = "username";  
  4. $password = "password";  
  5. $dbname = "ikeepstudying";  
  6.   
  7. // 創建鏈接  
  8. $conn = new mysqli($servername, $username, $password, $dbname);  
  9. // 檢查鏈接  
  10. if ($conn->connect_error) {  
  11.     die("連接失敗: " . $conn->connect_error);  
  12. }  
  13.   
  14. $sql = "INSERT INTO MyGuests (firstname, lastname, email)  
  15. VALUES ('John', 'Doe', 'john@example.com');";  
  16. $sql .= "INSERT INTO MyGuests (firstname, lastname, email)  
  17. VALUES ('Mary', 'Moe', 'mary@example.com');";  
  18. $sql .= "INSERT INTO MyGuests (firstname, lastname, email)  
  19. VALUES ('Julie', 'Dooley', 'julie@example.com')";  
  20.   
  21. if ($conn->multi_query($sql) === TRUE) {  
  22.     echo "新記錄插入成功";  
  23. else {  
  24.     echo "Error: " . $sql . "<br>" . $conn->error;  
  25. }  
  26.   
  27. $conn->close();  
  28. ?>  
 

 

請注意,每個SQL語句必須用分號隔開。

2.面向過程

 

Php代碼   收藏代碼
  1. <?php  
  2. $servername = "localhost";  
  3. $username = "username";  
  4. $password = "password";  
  5. $dbname = "ikeepstudying";  
  6.   
  7. // 創建連接  
  8. $conn = mysqli_connect($servername, $username, $password, $dbname);  
  9. // 檢測連接  
  10. if (!$conn) {  
  11.     die("Connection failed: " . mysqli_connect_error());  
  12. }  
  13.   
  14. $sql = "INSERT INTO MyGuests (firstname, lastname, email)  
  15. VALUES ('John', 'Doe', 'john@example.com')";  
  16.   
  17. if (mysqli_query($conn, $sql)) {  
  18.     echo "新記錄插入成功";  
  19. else {  
  20.     echo "Error: " . $sql . "<br>" . mysqli_error($conn);  
  21. }  
  22.   
  23. mysqli_close($conn);  
  24. ?>  
 

 

插入多條記錄:

Php代碼   收藏代碼
  1. <?php  
  2. $servername = "localhost";  
  3. $username = "username";  
  4. $password = "password";  
  5. $dbname = "ikeepstudying";  
  6.   
  7. // 創建鏈接  
  8. $conn = mysqli_connect($servername, $username, $password, $dbname);  
  9. // 檢查鏈接  
  10. if (!$conn) {  
  11.     die("連接失敗: " . mysqli_connect_error());  
  12. }  
  13.   
  14. $sql = "INSERT INTO MyGuests (firstname, lastname, email)  
  15. VALUES ('John', 'Doe', 'john@example.com');";  
  16. $sql .= "INSERT INTO MyGuests (firstname, lastname, email)  
  17. VALUES ('Mary', 'Moe', 'mary@example.com');";  
  18. $sql .= "INSERT INTO MyGuests (firstname, lastname, email)  
  19. VALUES ('Julie', 'Dooley', 'julie@example.com')";  
  20.   
  21. if (mysqli_multi_query($conn, $sql)) {  
  22.     echo "新記錄插入成功";  
  23. else {  
  24.     echo "Error: " . $sql . "<br>" . mysqli_error($conn);  
  25. }  
  26.   
  27. mysqli_close($conn);  
  28. ?>  
 

 

php5和新增了獲取最新插入值的ID的函數:mysqli_insert_id($conn),和之前的mysql_insert_id()類似。

都是用在insert語句之后獲取最新的自動id號,要注意的是mysqli_insert_id(),括號里面的一定要是數據庫連接而不是執行結果$result。

 

程序實例:

Php代碼   收藏代碼
  1. $conn   = new mysqli("127.0.0.1","root","","ikeepstudying") or die("數據庫連接超時!");  
  2. $sql    = "insert into my_table (name,url) values('ikeepstudying','http://justcode.ikeepstudying.com')";  
  3. $result = $conn->query($sql) or die("失敗");  
  4.   
  5. echo mysqli_insert_id($conn); //輸出剛剛插入數據的ID,注意:括號里面的要是$conn而不是$result  

 

 

3. PHP MySQL 預處理語句

 

預處理語句對於防止 MySQL 注入是非常有用的。使用預准備語句可提高重復使用語句的性能,在PHP中,使用prepare()方法來進行預准備語句查詢,使用execute()方法來執行預准備語句。PHP有兩種預准備語句:一種是綁定結果,另一種是綁定參數


 

預處理語句, 綁定參數及綁定結果

預處理語句用於執行多個相同的 SQL 語句,並且執行效率更高。

預處理語句的工作原理如下:

  1. 預處理:創建 SQL 語句模板並發送到數據庫。預留的值使用參數 "?" 標記 。例如:
    Sql代碼   收藏代碼
    1. INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)  
     
  2. 數據庫解析,編譯,對SQL語句模板執行查詢優化,並存儲結果不輸出。
  3. 執行:最后,將應用綁定的值傳遞給參數("?" 標記),數據庫執行語句。應用可以多次執行語句,如果參數的值不一樣。

相比於直接執行SQL語句,預處理語句有兩個主要優點:

  • 預處理語句大大減少了分析時間,只做了一次查詢(雖然語句多次執行)。
  • 綁定參數減少了服務器帶寬,你只需要發送查詢的參數,而不是整個語句。
  • 預處理語句針對SQL注入是非常有用的,因為參數值發送后使用不同的協議,保證了數據的合法性。

 

MySQLi 預處理語句及綁定參數

所謂綁定參數就是把PHP腳本中的自定義變量綁定到SQL語句中的參數(參數使用 “?”代替)上,綁定參數使用bind_param()方法,該方法的語法格式如下:
bool bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

以下實例在 MySQLi 中使用了預處理語句,並綁定了相應的參數:

Php代碼   收藏代碼
  1. <?php  
  2. $servername = "localhost";  
  3. $username = "username";  
  4. $password = "password";  
  5. $dbname = "ikeepstudying";  
  6.   
  7. // 創建連接  
  8. $conn = new mysqli($servername, $username, $password, $dbname);  
  9.   
  10. // 檢測連接  
  11. if ($conn->connect_error) {  
  12.     die("連接失敗: " . $conn->connect_error);  
  13. }  
  14.   
  15. // 預處理及綁定  
  16. $stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)");  
  17. $stmt->bind_param("sss", $firstname, $lastname, $email);  
  18.   
  19. // 設置參數並執行  
  20. $firstname = "John";  
  21. $lastname = "Doe";  
  22. $email = "john@example.com";  
  23. $stmt->execute();  
  24.   
  25. $firstname = "Mary";  
  26. $lastname = "Moe";  
  27. $email = "mary@example.com";  
  28. $stmt->execute();  
  29.   
  30. $firstname = "Julie";  
  31. $lastname = "Dooley";  
  32. $email = "julie@example.com";  
  33. $stmt->execute();  
  34.   
  35. echo "新記錄插入成功";  
  36.   
  37. $stmt->close();  
  38. $conn->close();  
  39. ?>  
 

 

解析以下實例的每行代碼:
Sql代碼   收藏代碼
  1. "INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)"  
 

在 SQL 語句中,我們使用了問號 (?),在此我們可以將問號替換為整型,字符串,雙精度浮點型和布爾值。

接下來,讓我們來看下 bind_param() 函數:

Php代碼   收藏代碼
  1. $stmt->bind_param("sss", $firstname, $lastname, $email);  
 

 

該函數綁定了 SQL 的參數,且告訴數據庫參數的值。 "sss" 參數列處理其余參數的數據類型。s 字符告訴數據庫該參數為字符串。

types:綁定的變量的數據類型,它接受的字符種類包括4個,如表所示。
字符種類
代表的數據類型
i
integer
d
double
s
string
b
blob
參數types接受的字符的種類和綁定的變量需要一一對應。

通過告訴數據庫參數的數據類型,可以降低 SQL 注入的風險。

注意: 如果你想插入其他數據(用戶輸入),對數據的驗證是非常重要的。

 

MySQLi 預處理語句及綁定結果

所謂綁定結果就是把PHP腳本中的自定義變量綁定到結果集中的相應字段上,這些變量就代表着所查詢的記錄,綁定結果的示例代碼如下:

Php代碼   收藏代碼
  1. <?php  
  2.     $mysqli = new mysqli("localhost","root","root","ikeepstudying");     //實例化mysqli  
  3.     $query  = "select * from MyGuests";  
  4.     $result = $mysqli->prepare($query);                                  //進行預准備語句查詢  
  5.     $result->execute();                                                  //執行預准備語句  
  6.     $result->bind_result($id,$firstname,$lastname,$email);                        //綁定結果  
  7.     while ($result->fetch()) {  
  8.         echo $id;  
  9.         echo $firstname;  
  10.         echo $lastname;  
  11.         echo $email;  
  12.     }  
  13.     $result->close();                                                     //關閉預准備語句  
  14. ?>  
 

 

在綁定結果的時候,腳本中的變量要與結果集中的字段一一對應,綁定完以后,通過fetch()方法將綁定在結果集中的變量一一取出來,最后將預准備語句和數據庫連接分別關閉。

 

MySQLi 同時綁定參數和綁定結果

在一個腳本中還可以同時綁定參數和綁定結果,示例代碼如下:

Php代碼   收藏代碼
  1. <?php  
  2.     $conn   = new mysqli("localhost","root","root","ikeepstudying");     //實例化mysqli  
  3.     $query  = "select * from MyGuests where id < ?";  
  4.     $result = $conn->prepare($query);  
  5.     $result->bind_param("i",$id);                                    //綁定參數  
  6.     $id=4;  
  7.     $result->execute();  
  8.     $result->bind_result($id,$number,$name,$age);                   //綁定結果  
  9.     while ($result->fetch()) {  
  10.         echo $id;  
  11.         echo $firstname;  
  12.         echo $lastname;  
  13.         echo $email;  
  14.     }  
  15.   
  16.     $result->close();  
  17.     $conn->close();  
  18. ?>  

 

 

4. PHP MySQL 讀取數據, 刪除及更新

SELECT 語句用於從數據表中讀取數據:

SELECT column_name(s) FROM table_name
在mysqli中,執行查詢使用query()方法,該方法的語法格式如下:
mixed query ( string $query [, int $resultmode ] )
在上述語法中涉及到的參數說明如下。
l         query:向服務器發送的SQL語句。
l         resultmode:該參數接受兩個值,一個是MYSQLI_STORE_RESULT,表示結果作為緩沖集合返回;另一個是MYSQLI_USE_RESULT,表示結果作為非緩沖集合返回。
 
下面是使用query()方法執行查詢的例子:
 

1.面向對象

Php代碼   收藏代碼
  1. <?php  
  2.     $mysqli = new mysqli("localhost","root","root","ikeepstudying");     //實例化mysqli  
  3.     $query  = "select * from MyGuests";  
  4.     $result = $mysqli->query($query);  
  5.     if ($result) {  
  6.         if($result->num_rows>0){                                               //判斷結果集中行的數目是否大於0  
  7.             while($row = $result->fetch_array() ){                        //循環輸出結果集中的記錄  
  8.                 echo ($row[0])."<br>";  
  9.                 echo ($row[1])."<br>";  
  10.                 echo ($row[2])."<br>";  
  11.                 echo ($row[3])."<br>";  
  12.                 echo "<hr>";  
  13.             }  
  14.         }  
  15.     }else {  
  16.         echo "查詢失敗";  
  17.     }  
  18.     $result->free();  
  19.     $mysqli->close();  
  20. ?>  
 在上面代碼中,num_rows為結果集的一個屬性,返回結果集中行的數目。方法fetch_array()將結果集中的記錄放入一個數組中並將其返回。最后使用free()方法將結果集中的內存釋放,使用close()方法將數據庫連接關閉。
 

 對於刪除記錄(delete)、保存記錄(insert)和修改記錄(update)的操作,也是使用query()方法來執行的,下面是刪除記錄的例子:

Php代碼   收藏代碼
  1. <?php  
  2.     $mysqli = new mysqli("localhost","root","root","ikeepstudying");              //實例化mysqli  
  3.     $query  = "delete from MyGuests where id=2";  
  4.     $result = $mysqli->query($query);  
  5.     if ($result){  
  6.         echo "刪除操作執行成功";  
  7.     }else {  
  8.         echo "刪除操作執行失敗";  
  9.     }  
  10.     $mysqli->close();  
  11. ?>  
 

 

完整實例:

Php代碼   收藏代碼
  1. <?php  
  2.     $servername = "localhost";  
  3.     $username = "username";  
  4.     $password = "password";  
  5.     $dbname = "ikeepstudying";  
  6.       
  7.     // 創建連接  
  8.     $conn = new mysqli($servername, $username, $password, $dbname);  
  9.     // 檢測連接  
  10.     if ($conn->connect_error) {  
  11.         die("連接失敗: " . $conn->connect_error);  
  12.     }  
  13.       
  14.     $sql = "SELECT id, firstname, lastname FROM MyGuests";  
  15.     $result = $conn->query($sql);  
  16.       
  17.     if ($result->num_rows > 0) {  
  18.         // 輸出每行數據  
  19.         while($row = $result->fetch_assoc()) {  
  20.             echo "<br> id: ". $row["id"]. " - Name: ". $row["firstname"]. " " . $row["lastname"];  
  21.         }  
  22.     } else {  
  23.         echo "0 個結果";  
  24.     }  
  25.     $conn->close();  
  26. ?>  

 

 

更多實例:

 

INSERT

 

Php代碼   收藏代碼
  1. $stmt = $mysqli->prepare("INSERT INTO movies(filmName,   
  2. filmDescription,filmImage,filmPrice,filmReview) VALUES (?, ?, ?, ?, ?)");  
  3. $stmt->bind_param('sssdi', $_POST['filmName'],   
  4. $_POST['filmDescription'],  
  5. $_POST['filmImage'],  
  6. $_POST['filmPrice'],  
  7. $_POST['filmReview']);  
  8. $stmt->execute();   
  9. $stmt->close();  

 

 

Getting Auto Increment Key Values with insert_id

 

Php代碼   收藏代碼
  1. $stmt = $mysqli->prepare("INSERT INTO movies(filmName,   
  2. filmDescription,filmImage,filmPrice,filmReview) VALUES (?, ?, ?, ?, ?)");  
  3. $stmt->bind_param('sssdi', $_POST['filmName'],   
  4. $_POST['filmDescription'],  
  5. $_POST['filmImage'],  
  6. $_POST['filmPrice'],  
  7. $_POST['filmReview']);  
  8. $stmt->execute();  
  9. $newId = $stmt->insert_id;  
  10. $stmt->close();  

 

 

UPDATE

 

Php代碼   收藏代碼
  1. $stmt = $mysqli->prepare("UPDATE movies SET filmName = ?,   
  2.    filmDescription = ?,   
  3.    filmImage = ?,    
  4.    filmPrice = ?,    
  5.    filmReview = ?    
  6.    WHERE filmID = ?");  
  7. $stmt->bind_param('sssdii',  
  8.    $_POST['filmName'],  
  9.    $_POST['filmDescription'],  
  10.    $_POST['filmImage'],  
  11.    $_POST['filmPrice'],   
  12.    $_POST['filmReview'],  
  13.    $_POST['filmID']);  
  14. $stmt->execute();   
  15. $stmt->close();  

 

 

DELETE

 

Php代碼   收藏代碼
  1. $stmt = $mysqli->prepare("DELETE FROM movies WHERE filmID = ?");  
  2. $stmt->bind_param('i', $_POST['filmID']);  
  3. $stmt->execute();   
  4. $stmt->close();  

 

 

2.面向過程

Php代碼   收藏代碼
  1. <?php  
  2.     $con = mysqli_connect("localhost","username","password","ikeepstudying");  
  3.   
  4.     // 檢測連接  
  5.     if (mysqli_connect_errno())  
  6.     {  
  7.         echo "連接失敗: " . mysqli_connect_error();  
  8.     }  
  9.   
  10.     $result = mysqli_query($con,"SELECT * FROM Persons WHERE FirstName='Peter'");  
  11.   
  12.     while($row = mysqli_fetch_array($result))  
  13.     {  
  14.         echo $row['FirstName'] . " " . $row['LastName'];  
  15.         echo "<br>";  
  16.     }  
  17. ?>  

 

 

5. mysqli 讀取數據庫的幾種方式

mysqli有四種讀取數據庫數據的方式:mysqli_fetch_array(), mysqli_fetch_object(),  mysqli_fetch_accoc(),  mysqli_fetch_row()。

 

區別是:

  • mysqli_fetch_array(),同時返回關系型數組計數型數組2種,讀取數據的時候我們可以用比如:$result[1] 或者是$result["username"]。
  • mysqli_fetch_accoc(),返回關系型數組,讀取數據的時候我們可以用比如:$result["username"]。
  • mysqli_fetch_row(),返回計數型數組,讀取數據的時候我們可以用比如:$result[0]。
  • mysqli_fetch_object()返回一個對象,讀取數據的時候我們可以用比如:$result->username的方式讀取數據。

 

6. mysqli 一些函數的對比 ( 面向對象 vs 面向過程 )

1. mysqli 連接數據庫:

$db = new mysqli(host,user,password,database);
這是對象導向的連接方法,還有一種過程導向的連接方法。前者返回一個對象,后者返回一個資源。
$db = mysqli_connect(host,user,password,database);

 

2.mysqli 連接出錯函數:

$db->connect_error
or
mysqli_connect_error();
如果連接出錯,該函數返回一個錯誤號,否則返回0;

 

3.選擇數據庫:

$db->select_db(dbname);
or
mysqli_select_db(db_resource,db_name);

 

4.mysqli 執行查詢

$result = $db->query($query);
or
$result = mysqli_query($db,$query);

 

5.返回結果的行數:

$num_results = $result->num_rows;
or
$num_results = mysqli_num_rows($result);

 

6.取出每一行的結果(返回關系型數組):

$row = $result->fetch_assoc();
or
$row = mysqli_fetch_assoc($result);

 

7.取出每一行的結果(返回計數型數組):

$row = $result->fetch_row($result);
or
$row = mysqli_fetch_row($result);

 

8.取出每一行的結果(返回一個對象):

$row = $result->fetch_object();
or
$row = mysqli_fetch_object($result);

 

9.釋放查詢結果:

$result->free();
or
mysqli_free_result($result);

 

10.關閉數據庫連接:

$db->close();
or
mysqli_close($db);

 

11.一條查詢所影響的行數:

$db->affected_rows;
or
mysqli_affected_rows($result);

 

12.模式化SQL語句執行:

$query = “insert into books values(?, ?, ?, ?)”;
$stmt = $db->prepare($query);
$stmt->bind_param(“sssd”, $isbn, $author, $title, $price);
$stmt->execute();
echo $stmt->affected_rows.’ book inserted into database.’;
$stmt->close();

在過程化執行方式中,

$db->prepare()對應mysqli_stmt_prepare()函數;
$stmt->bind_param()對應mysqli_stmt_bind_param()函數;
$stmt->execute() 對應mysqli_stmt_execute()函數;

 

 

本文轉自: PHP5: mysqli 插入, 查詢, 更新和刪除  Insert Update Delete Using mysqli (CRUD)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM