PHP数据库操作全攻略

连接数据库

复制代码
##基于mysqli的面向过程代码
<?php
// 连接数据库
$host = 'localhost'; // 数据库服务器
$user = 'username'; // 数据库用户名
$password = 'password'; // 数据库密码
$database = 'database_name'; // 数据库名
 
$link = mysqli_connect($host, $user, $password, $database);
 
// 检查连接
if (!$link) {
    die('连接失败: ' . mysqli_connect_error());
}
mysqli_close($link);
?>
##基于mysqli的面向对象代码
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
 
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
$conn->close();
?>
##采用PDO驱动连接
<?php
$servername = "localhost";
$username = "username";
$password = "password";
​
try {
    $conn = new PDO("mysql:host=$servername", $username, $password);
​
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "CREATE DATABASE myDBPDO";
​
    // 使用 exec() ,因为没有结果返回
    $conn->exec($sql);
​
    echo "数据库创建成功<br>";
}
catch(PDOException $e)
{
    echo $sql . "<br>" . $e->getMessage();
}
​
$conn = null;
?>

创建数据库

复制代码
##面向对象
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
    echo "数据库创建成功";
} else {
    echo "Error creating database: " . $conn->error;
}
##面向过程
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
    echo "数据库创建成功";
} else {
    echo "Error creating database: " . mysqli_error($conn);
}

查询数据

复制代码
##面向过程
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
 
if (mysqli_num_rows($result) > 0) {
    // 输出数据
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} else {
    echo "0 结果";
}
##面向对象
$sql = "SELECT * FROM table";
$result = $conn->query($sql);
 
if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        // 处理每一行数据
    }
} else {
    echo "0 结果";
}

插入数据

复制代码
$sql = "INSERT INTO table (column1, column2, column3) VALUES ('value1', 'value2', 'value3')";
if ($conn->query($sql) === TRUE) {
    echo "插入成功";
} else {
    echo "插入失败: " . $conn->error;
}

更新数据

复制代码
$sql = "UPDATE table SET column1='new value' WHERE condition";
if ($conn->query($sql) === TRUE) {
    echo "更新成功";
} else {
    echo "更新失败: " . $conn->error;
}

删除数据

复制代码
$sql = "DELETE FROM table WHERE condition";
if ($conn->query($sql) === TRUE) {
    echo "删除成功";
} else {
    echo "删除失败: " . $conn->error;
}

案例

复制代码
// 连接到数据库
$conn = mysqli_connect("localhost", "username", "password", "database");
 
// 检查表单是否提交
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // 获取表单数据
    $username = $_POST["username"];
    $password = $_POST["password"];
 
    // 检查用户名是否已经存在
    $query = "SELECT * FROM users WHERE username = '$username'";
    $result = mysqli_query($conn, $query);
 
    if (mysqli_num_rows($result) == 0) {
        // 用户名不存在,可以进行注册
        $query = "INSERT INTO users (username, password) VALUES ('$username', '$password')";
        mysqli_query($conn, $query);
 
        // 注册成功后的操作
        echo "注册成功!";
    } else {
        // 用户名已经存在,注册失败
        echo "用户名已经存在,请选择其他用户名。";
    }
}

Redis数据库操作

复制代码
1、安装php-redis
[root@localhost ~]# yum install php-redis
 
2、准备php环境
[root@localhost ~]# yum install httpd php -y
 
3、启动测试apache和php协同
[root@localhost ~]# vim /var/www/html/phpinfo.php
<?php
 phpinfo();
?>
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
 
4、测试
连接到 redis 服务
[root@localhost ~]# vim /var/www/html/ping.php
<?php
 
 //连接本地的 Redis 服务
 $redis = new Redis();
 $redis->connect('127.0.0.1', 6379);
 echo "Connection to server sucessfully";
    //查看服务是否运行
 echo "Server is running: " . $redis->ping();
?>
[root@localhost ~]# elinks -dump http://localhost/ping.php
 Connection to server sucessfullyServer is running: +PONG
Redis PHP String(字符串) 实例
[root@localhost ~]# vim /var/www/html/string.php
<?php
 
 //连接本地的 Redis 服务
 $redis = new Redis();
 $redis->connect('127.0.0.1', 6379);
 echo "Connection to server sucessfully";
 
//设置 redis 字符串数据
 $redis->set("linux", "Linux Redis test");
 
 // 获取存储的数据并输出
 echo "Stored string in redis:: " .  $redis->get("linux");
?>
[root@localhost ~]# elinks -dump http://localhost/string.php
 Connection to server sucessfullyStored string in redis:: Linux Redis test
 
Redis PHP List(列表) 实例
[root@localhost ~]# vim /var/www/html/list.php
<?php
 //连接本地的 Redis 服务
 $redis = new Redis();
 $redis->connect('127.0.0.1', 6379);
 echo "Connection to server sucessfully";
 //存储数据到列表中
 $redis->lpush("test-list", "Redis");
 $redis->lpush("test-list", "Mongodb");
 $redis->lpush("test-list", "Mysql");
 // 获取存储的数据并输出
 $arList = $redis->lrange("test-list", 0 ,5);
 echo "Stored string in redis";
 print_r($arList);
?>
[root@localhost ~]# elinks -dump http://localhost/list.php
 Connection to server sucessfullyStored string in redisArray ( [0] => Mysql
 [1] => Mongodb [2] => Redis )
Redis PHP Keys 实例
[root@localhost ~]# vim /var/www/html/keys.php
<?php
 //连接本地的 Redis 服务
 $redis = new Redis();
 $redis->connect('127.0.0.1', 6379);
 echo "Connection to server sucessfully";
 // 获取数据并输出
 $arList = $redis->keys("*");
 echo "Stored keys in redis:: ";
 print_r($arList);
?>
[root@localhost ~]# elinks -dump http://localhost/keys.php
 Connection to server sucessfullyStored keys in redis:: Array ( [0] =>
 test-list [1] => linux )
相关推荐
dongchen。1 小时前
MySQL第四次作业
数据库·mysql
普普通通的南瓜1 小时前
SM2 vs RSA/ECC:双算法 SSL 证书的性能对比与优化方案
数据库·网络协议·ssl
九章-1 小时前
中旅国际数据库国产化升级:以金仓KES打造安全可控的旅游服务底座
数据库·安全·旅游
pipip.2 小时前
Redis vs MongoDB:内存字典与文档库对决
数据库·redis·缓存
小白银子3 小时前
零基础从头教学Linux(Day 62)
数据库·mysql·oracle
Boilermaker19926 小时前
【MySQL 进阶】高性能优化
数据库·sql·mysql
CoderOnly7 小时前
SQL,CROSS JOIN速度优化
数据库·sql·mysql
Highcharts.js7 小时前
入门指南|从文件到图表:Highcharts对接数据库(CSV、Excel)实现数据同步绘制图表
数据库·excel·数据同步·highcharts·数据对接·文件导入
老衲提灯找美女9 小时前
MySQL的增删改查功能合集
数据库·mysql·增删改查·增删改查详细用法
SelectDB10 小时前
Apache Doris 4.0.1 版本正式发布
数据库·apache