PHP连接和操作MySQL数据库基础教程

我的博客,后台数据库是什么?没错,就是MySQL,服务器端使用的脚本就是PHP,整个框架使用的是WordPress。PHPMySQL就像夫妻一样,总是在一起干活。现在这里,就集合PHP,总结一下MySQL的实际使用,也算作是MySQL开发的入门。关于PHP与MySQL的合作,不外乎以下三种方法:

1.mysql扩展;但是目前已经不推荐使用;

2.mysqli扩展;同时提供面向对象风格和面向过程的风格;要求MySQL版本是4.1及以上的;

3.PDO扩展为PHP访问数据库定义了一种轻量级的一致接口;PDO_MYSQL是对其的具体实现。这里暂时只关心开发。由于mysql扩展已经不推荐使用了,我也会与时俱进,不做总结;而mysqli和PDO方式用的比较多,所以这篇将会总结如何使用mysqli扩展来连接数据库服务器,如何查询和获取数据,以及如何执行其它重要任务。下一篇博文将会总结PDO的相关内容。

使用mysqli扩展

先看以下测试数据库db_test中的测试数据:

复制代码 代码如下:


mysql> select * from tb_test;
+----+-----------+----------+------------+------------+
| id | firstname | lastname | email      | phone      |
+----+-----------+----------+------------+------------+
|  1 | Young     | Jelly    | 123@qq.com | 1384532120 |
|  3 | Fang      | Jone     | 456@qq.com | 1385138913 |
|  4 | Yuan      | Su       | 789@qq.com | 1385138913 |
+----+-----------+----------+------------+------------+
3 rows in set (0.00 sec)

1.建立和断开连接

与MySQL数据库交互时,首先要建立连接,最后要断开连接;这包括与服务器连接并选择一个数据库,以及最后关闭连接,释放资源。选择使用面向对象接口与MySQL服务器交互,首先需要通过其构造函数实例化mysqli类。

复制代码 代码如下:


<?php
    // 实例化mysqli类
    $mysqliConn = new mysqli();
    // 连接服务器,并选择一个数据库
    $mysqliConn->connect('127.0.0.1', 'root', 'root', 'db_test');
    printf("MySQL error number:%d", $mysqliConn->errno);
    // 或者
    // $mysqliConn->connect("http://127.0.0.1", 'root', 'root');
    // $mysqliConn->select_db('db_test');
   
    // 与数据库交互
   
    // 关闭连接
    $mysqliConn->close();
?>

一旦成功的选择了数据库,然后就可以对这个数据库执行数据库查询了。一旦脚本执行完毕,所有打开的数据库连接都会自动关闭,并释放资源。不过,有可能一个页面在执行期间需要多个数据库连接,各个连接都应当适当的加以关闭。即使只使用一个连接,也应该在脚本的最后将其关闭,这是一种很好的实践方法。在任何情况下,都由close()负责关闭连接。

2.处理连接错误

当然,如果无法连接MySQL数据库,那么不大可能在这个页面继续完成预期的工作了。因此,一定要注意监视连接错误并相应地做出反应。mysqli扩展包包含很多可以用来捕获错误消息的特性,另外也可以使用异常来做到这一点。例如,可以使用mysqli_connect_errno()和mysqli_connect_error()方法诊断并显示一个MySQL连接错误的有关信息。

关于mysqli的具体信息可以在这里查看:

与数据库交互

绝大多数查询都与创建、获取、更新和删除任务有关,这些任务统称为CRUD。这里就开始总结CRUD相关的内容。

1.向数据库发送查询

方法query()负责将query发送给数据库。它的定义如下:

复制代码 代码如下:


mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

可选参数resultmode可以用于修改这个方法的行为,它接受两个可取值。这篇文章总结了二者之间的区别。https://www.jb51.net/article/55792.htm;下面是一个简单的使用例子:

复制代码 代码如下:


<?php
    // 实例化mysqli类
    $mysqliConn = new mysqli();
 
    // 连接服务器,并选择一个数据库
    // 错误的密码
    $mysqliConn->connect('127.0.0.1', 'root', 'root', 'db_test');
    if ($mysqliConn->connect_error)
    {
        printf("Unable to connect to the database:%s", $mysqliConn->connect_error);
        exit();
    }
   
    // 与数据库交互
    $query = 'select firstname, lastname, email from tb_test;';
 
    // 发送查询给MySQL
    $result = $mysqliConn->query($query);
 
    // 迭代处理结果集
    while (list($firstname, $lastname, $email) = $result->fetch_row())
    {
        printf("%s %s's email:%s<br/>", $firstname, $lastname, $email);
    }
   
    // 关闭连接
    $mysqliConn->close();
?>

2.插入、更新和删除数据

插入、更新和删除使用的是insert、update和delete查询完成的,其做法实际上与select查询相同。示例代码如下:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a8c1d99ee98662b12e901759ad34e343.html