「这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战」。
一、前言
本文是基础篇三,基础篇一:juejin.cn/post/705704… 基础篇二:juejin.cn/post/705863… PHP是一门服务端脚本语言,具有开发效率高,易上手,适合新手学习和使用等特点。目前PHP的市场占有率还是挺高的,一线大厂、初创公司、站长、外包公司都能看到它的身影。不过受到Java、Go、Node.js的影响,市场占有率也有慢慢减少的趋势。
本文将整理并总结重要的知识点,帮助大家快速了解并学习PHP脚本语言,快速上手PHP开发,本文为基础篇最后一篇。
前面基础一、二篇文章我们讲解了PHP的基础语法,本篇我们来看看如何使用PHP来操作MySQL。后端开发主要就是和数据打交道,和数据打交道其实主要就是操作数据库,围绕着最基础的增删改查来完成复杂的业务。
二、数据库
2.1 MySQL简介
MySQL是非常快速、可靠、易于使用的免费软件,是目前最常用的数据库系统。我们可以通过PHP操作MySQL数据库,来实现我们的业务需求。下面我们来操作几个基本的添加数据库、添加数据表、增删改查操作。
2.2 连接数据库
PHP可以使用MySQLi和PDO连接数据库,建议使用PDO连接,PDO支持不同的数据库类型,如果使用过程中切换数据库则只需改动部分语句。
1.本地开发环境需要安装MySQL。
2.使用MySQLi需要先安装扩展:www.php.net/manual/en/m… 使用PDO需要先安装扩展:www.php.net/manual/en/p… 可以通过输出phpinfo()函数来查看是否安装成功。示例:
<?php
$serverName = '127.0.0.1';//连接地址
$userName = 'root';//数据库名
$password = '123456';数据库密码
//MySQLi连接
$conn = new mysqli($serverName, $userName, $password);
if ($conn->connect_error) {
die('连接失败,原因: ' . $conn->connect_error);
}
echo '连接成功';
//PDO连接
try {
$conn = new PDO("mysql:host=$serverName;", $userName, $password);
echo "连接成功";
} catch (PDOException $e) {
echo '连接失败,原因: ' . $e->getMessage();
}
?>
2.3 创建数据库
CREATE DATABASE语句用于在 MySQL中创建数据库,我们试着创建一个名称叫DemoDatabase的数据库。示例:
<?php
$serverName = '127.0.0.1';//连接地址
$userName = 'root';//数据库名
$password = '123456';数据库密码
//创建数据库
try {
$conn = new PDO("mysql:host=$serverName;", $userName, $password);
//设置错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE DATABASE DemoDatabase";
$conn->exec($sql);
echo '数据库创建成功';
} catch (PDOException $e) {
echo '创建失败,原因: ' . $e->getMessage();
}
?>
2.4 创建数据表
CREATE TABLE语句用于创建MySQL表,我们使用DemoDatabase数据库,来创建一张teacher表。示例:
CREATE TABLE `teacher` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` char(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '老师名称',
`age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
<?php
$serverName = '127.0.0.1';
$userName = 'root';
$password = '123456';
$dbName = 'DemoDatabase';
//创建数据表
try {
$conn = new PDO("mysql:host=$serverName;dbname=$dbName", $userName, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE TABLE `teacher` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` char(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '老师名称',
`age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";
$conn->exec($sql);
echo "创建数据表成功";
} catch (PDOException $e) {
echo '创建数据表失败,原因: ' . $e->getMessage();
}
?>
2.5 添加数据
我们创建完数据库和数据表后就可以给老师表添加数据了,使用INSERT语句,可以添加一条数据,也可以开启事务,一次添加多条数据,添加过程中失败则会回滚事务,之前添加过的数据不会存在数据表中。示例:
<?php
$serverName = '127.0.0.1';
$userName = 'root';
$password = '123456';
$dbName = 'DemoDatabase';
//添加数据
try {
$conn = new PDO("mysql:host=$serverName;dbname=$dbName", $userName, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO teacher ( `name`, age ) VALUES ( '张三', 18 );";
$conn->exec($sql);
echo "添加数据成功";
} catch (PDOException $e) {
echo '添加数据失败,原因: ' . $e->getMessage();
}
//添加多条数据
try {
$conn = new PDO("mysql:host=$serverName;dbname=$dbName", $userName, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//开始事务
$conn->beginTransaction();
$conn->exec("INSERT INTO teacher ( `name`, age ) VALUES ( '张三', 18 )");
$conn->exec("INSERT INTO teacher ( `name`, age ) VALUES ( '李四', 18 )");
$conn->exec("INSERT INTO teacher ( `name`, age ) VALUES ( '王五', 18 )");
//提交事务
$conn->commit();
echo "添加数据成功";
} catch (PDOException $e) {
echo '添加数据失败,原因: ' . $e->getMessage();
}
?>
2.6 删除数据
我们使用DELETE语句来删除指定条件的数据,记得带上WHERE条件,否则数据表记录都会被删除。示例:
<?php
$serverName = '127.0.0.1';
$userName = 'root';
$password = '123456';
$dbName = 'DemoDatabase';
//删除数据
try {
$conn = new PDO("mysql:host=$serverName;dbname=$dbName", $userName, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $conn->exec('DELETE FROM teacher WHERE id = 1');
if ($result) {
echo '删除数据成功';
} else {
echo '删除数据失败';
}
} catch (PDOException $e) {
echo '删除数据失败,原因: ' . $e->getMessage();
}
?>
2.7 更新数据
我们使用UPDATE语句来更新数据内容,记得带上WHERE条件,否则数据表记录都会被更新。示例:
<?php
$serverName = '127.0.0.1';
$userName = 'root';
$password = '123456';
$dbName = 'DemoDatabase';
//更新数据
try {
$conn = new PDO("mysql:host=$serverName;dbname=$dbName", $userName, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $conn->exec('UPDATE teacher SET age = 30 WHERE id = 1');
if ($result) {
echo '更新数据成功';
} else {
echo '更新数据失败';
}
} catch (PDOException $e) {
echo '更新数据失败,原因: ' . $e->getMessage();
}
?>
2.6 查询数据
添加完数据后,我们通过SELECT语句读取所有的数据列表,也可以使用where条件,和原声SQL编写的方式一致,示例:
<?php
$serverName = '127.0.0.1';
$userName = 'root';
$password = '123456';
$dbName = 'DemoDatabase';
//查询数据
try {
$conn = new PDO("mysql:host=$serverName;dbname=$dbName", $userName, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $conn->prepare('SELECT * FROM teacher');
$result->execute();
$result->setFetchMode(PDO::FETCH_ASSOC);
$list = $result->fetchAll();
var_dump($list);
} catch (PDOException $e) {
echo '查询数据失败,原因: ' . $e->getMessage();
}
?>
三、结束
基础篇知识点编写完毕啦,有许多详细的知识点,可以在使用的过程中学习并使用,相信很快就能上手该编程语言。
参考资料:官方文档: www.php.net/manual/zh 菜鸟教程:www.runoob.com/php
感谢阅读,第三篇幅就到这里吧,我们下次再见。