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

 

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

 

 

 

Selection_095

PHP 5 及以上版本建议使用如下方式链接 MySQL :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类,例以下面的代码:sql

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 插入数据

在建立完数据库和表后,咱们能够向表中添加数据。socket

如下为一些语法规则:函数

  • 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)