我们可以通过PHP操作数据库。

 在学习PHP需要哪些准备?这一节我们就通过宝塔已经准备好了LNMP环境,其中M指的就是MySQL。读者如果不熟悉MySQL的一些基本知识可以跳转MySQL教程自行学习。

熟悉数据库的读者可以往这里看了。这里我将演示通过PHP PDO(php database object)来操作我们的数据库(PDO面向对象操作,简单容易上手)。

PDO可以理解为一个PHP内置对象,然后我们通过该对象内置方法来连接我们的数据库,完成创建表格、增添数据、查询数据等功能。看不懂代码也没关系,将数据库信息进行相应替换(数据库名、用户名、密码之类的),然后放到一个.php文件里并运行,您既可以在网页上也可以在终端上看到效果。

<?php
/* 通过PDO连接数据库 */
// 1. 数据库配置(改成你自己的)
$host = '127.0.0.1';      // 数据库地址
$dbname = 'dotcpp';       // 数据库名
$username = 'dotcpp';     // 用户名
$password = 'dotcpp';     // 密码(如果没密码就留空)
// 2. 连接数据库
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);//通过PDO对象连接数据库
    
    // 3. 创建 dotcpp_ret 表格
    $sql = "
    CREATE TABLE IF NOT EXISTS dotcpp_users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        nickName VARCHAR(50) NOT NULL,
        signature VARCHAR(255),
        grade INT DEFAULT 1,
        degree VARCHAR(50),
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )
    ";
    
    $pdo->exec($sql);//exec()执行不返回结果的sql语句,这里我们是创建表格,所以使用exec()
    
    // 4. 插入测试数据
    $sql = "INSERT INTO dotcpp_ret (nickName, signature, grade, degree) 
            VALUES 
            ('dotcpp_user01', 'coding', 100, 'p1'),
            ('dotcpp_user02', 'coding', 100, 'p1'),
            ('dotcpp_user03', 'coding', 100, 'p1')";
    
    $pdo->exec($sql);//插入3个用户信息
    
    // 5. 查询显示数据
    $sql = "SELECT * FROM dotcpp_ret";//准备查询获取dotcpp_ret用户信息
    $process = $pdo->query($sql);//进行sql查询信息
    $ret = $process->fetchAll(PDO::FETCH_ASSOC);//通过fetchAll获取所有数据,通过PDO::FETCH_ASSOC来指定数据格式是“字段->值”的关联数组
    foreach ($ret as $user) {
        echo "ID: {$user['id']} | 昵称: {$user['nickName']} | 签名: {$user['signature']} | 年级: {$user['grade']} | 学位: {$user['degree']}<br>";
    }
    //6. 关闭数据库
    $pdo=null;
    ?>

以上6步基本就能够体验PHP操作数据库的感觉了。

我们技能在test.php看到我们插入的数据,也能在DOS窗口查看我们插入的数据。

PHP 数据库

打开终端,进入MySQL,然后查看有没有dotcpp_users表:

PHP 数据库

总结:通过PHP操作数据库,实现了数据持久化和程序与数据分离的核心价值。它让程序逻辑专注于业务处理,而将数据存储交给专门的数据库管理系统,这样既确保了数据的长期保存和高效管理,又使得程序结构更清晰、易于维护和扩展。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)