@TOC
前言
本文已收录于PHP全栈系列专栏:PHP快速入门与实战
一、PHP连接MySQL
PHP链接MySQL可以使用mysqli或PDO两种方式,其中mysqli是面向过程的,而PDO是面向对象的。以下是使用mysqli链接MySQL的示例代码:
1.1 建立数据库链接
$conn = mysqli_connect("localhost", "username", "password", "database");
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
1.2 插入数据
$sql = "INSERT INTO users (name, age, email) VALUES ('John', 25, 'john@example.com')";
if (mysqli_query({
mathJaxContainer[0]}sql)) {
echo "新记录插入成功";
} else {
echo "Error:" . {
mathJaxContainer[1]}conn);
}
1.3 更新数据
$sql = "UPDATE users SET name='Jane' WHERE id=1";
if (mysqli_query({
mathJaxContainer[2]}sql)) {
echo "记录更新成功";
} else {
echo "Error:" . {
mathJaxContainer[3]}conn);
}
1.4 删除数据
$sql = "DELETE FROM users WHERE id=1";
if (mysqli_query({
mathJaxContainer[4]}sql)) {
echo "记录删除成功";
} else {
echo "Error:" . {
mathJaxContainer[5]}conn);
}
1.5 查询数据并输出结果
$sql = "SELECT * FROM users";
{
mathJaxContainer[6]}conn, $sql);
if (mysqli_num_rows($result) > 0) {
while({
mathJaxContainer[7]}result)) {
echo "Name: " . {
mathJaxContainer[8]}row["age"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "没有记录";
}
1.6 查询数据并返回结果
$sql = "SELECT * FROM users WHERE age > 18";
{
mathJaxContainer[9]}conn, $sql);
if (mysqli_num_rows($result) > 0) {
while({
mathJaxContainer[10]}result)) {
print_r($row); // 输出结果数组
}
} else {
echo "没有记录";
}
1.7 获取查询结果的行数
$sql = "SELECT * FROM users";
{
mathJaxContainer[11]}conn, $sql);
echo "共有 ". mysqli_num_rows($result) . " 条记录";
1.8 获取查询结果的列数
$sql = "SELECT * FROM users";
{
mathJaxContainer[12]}conn, $sql);
{
mathJaxContainer[13]}conn);
echo "共有 ".$num_columns." 列";
1.9 获取查询结果的字段名
$sql = "SELECT * FROM users";
{
mathJaxContainer[14]}conn, $sql);
{
mathJaxContainer[15]}result);
foreach ({
mathJaxContainer[16]}field) {
echo $field->name."<br>";
}
1.10 获取查询结果的字段类型
$sql = "SELECT * FROM users";
{
mathJaxContainer[17]}conn, $sql);
{
mathJaxContainer[18]}result);
foreach ({
mathJaxContainer[19]}field) {
echo $field->type."<br>";
}
1.11 获取上一次操作影响的行数
$sql = "DELETE FROM users WHERE age < 18";
mysqli_query({
mathJaxContainer[20]}sql);
echo "删除了 ". mysqli_affected_rows($conn) . " 条记录";
1.12 开启事务
mysqli_autocommit($conn, false);
mysqli_begin_transaction($conn);
// 执行一系列操作
if (成功) {
mysqli_commit($conn);
} else {
mysqli_rollback($conn);
}
1.13 设置字符集
mysqli_set_charset($conn, "utf8");
1.14 预处理语句
{
mathJaxContainer[21]}conn, "INSERT INTO users (name, age, email) VALUES (?, ?, ?)");
mysqli_stmt_bind_param({
mathJaxContainer[22]}name, {
mathJaxContainer[23]}email);
$name = "John";
$age = 25;
$email = "john@example.com";
mysqli_stmt_execute($stmt);
1.15 关闭数据库连接
mysqli_close($conn);
二、PHP链接操作Redis
2.1 安装Redis
PHP链接redis:
- 首先需要安装redis扩展,可以使用pecl命令进行安装:pecl install redis
- 在php.ini文件中添加extension=redis.so
- 使用以下代码链接redis数据库:
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
其中'127.0.0.1'是redis主机地址,6379是redis端口号。
2.2 操作redis的30个例子
- 设置key和value:
$redis->set('key', 'value');
- 获取key的值:
$redis->get('key');
- 判断key是否存在:
$redis->exists('key');
- 删除key:
$redis->del('key');
- 设置key过期时间:
$redis->expire('key', 60);
- 获取key过期时间:
$redis->ttl('key');
- 自增:
$redis->incr('key');
- 自减:
$redis->decr('key');
- 加入列表:
$redis->lPush('key', 'value1', 'value2', ...);
- 弹出列表中的一个元素:
$redis->lPop('key');
- 获取列表长度:
$redis->lLen('key');
- 获取列表中指定范围内的元素:
$redis->lRange('key', $start, $end);
- 在列表中删除指定元素:
$redis->lRem('key', 'value');
- 对集合进行添加操作:
$redis->sAdd('key', 'value1', 'value2', ...);
- 获取集合的元素个数:
$redis->sCard('key');
- 判断元素是否在集合中:
$redis->sIsMember('key', 'value');
- 从集合中删除一个元素:
$redis->sRem('key', 'value');
- 向有序集合中添加元素:
$redis->zAdd('key', $score, 'value');
- 获取有序集合中元素的数量:
$redis->zCard('key');
- 获取有序集合中指定范围内的元素:
$redis->zRange('key', $start, $end);
- 从有序集合中删除指定元素:
$redis->zRem('key', 'value');
- 获取hash表中所有的键值对:
$redis->hGetAll('key');
- 设置hash表中某个字段的值:
$redis->hSet('key', 'field', 'value');
- 获取hash表中某个字段的值:
$redis->hGet('key', 'field');
- 判断hash表中某个字段是否存在:
$redis->hExists('key', 'field');
- 删除hash表中某个字段:
$redis->hDel('key', 'field');
- 发布消息:
$redis->publish('channel', 'message');
- 订阅消息:
$redis->subscribe(array('channel'), function($redis, $channel, $message) {echo $message;});
- 监听某个key的变化:
$redis->subscribe(array('__keyspace@0__:key'), function($redis, $channel, $message) {echo $channel, ':', $message;});
- 设置某个key的值,当值为指定值时才更新:
$redis->watch('key'); $redis->multi(); $redis->set('key', 'new_value'); $redis->exec();
总结
以上就是关于本篇文章介绍的内容,MySQL数据库与Redis操作,后续更多内容将收录在专栏PHP快速入门与实战中,感谢大家支持。