首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysqli实现增删改查

基础概念

mysqli 是 PHP 中的一个扩展,用于与 MySQL 数据库进行交互。它提供了面向对象和过程化的 API,用于执行 SQL 查询、获取结果以及处理数据库连接。

优势

  1. 性能mysqli 是原生 PHP 扩展,性能优于一些其他数据库抽象层。
  2. 功能丰富:支持预处理语句、事务处理、存储过程等高级功能。
  3. 安全性:通过预处理语句可以有效防止 SQL 注入攻击。

类型

mysqli 主要有两种使用方式:

  1. 面向对象:使用 mysqli 类的方法。
  2. 过程化:使用函数调用。

应用场景

适用于需要与 MySQL 数据库进行交互的 PHP 应用程序,如 Web 应用、API 等。

增删改查示例

增加(Insert)

代码语言:txt
复制
<?php
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'database_name';

// 创建连接
$conn = new mysqli($host, $user, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$sql = "INSERT INTO users (name, email) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $name, $email);

$name = "John Doe";
$email = "john.doe@example.com";

$stmt->execute();

echo "新记录插入成功";

$stmt->close();
$conn->close();
?>

删除(Delete)

代码语言:txt
复制
<?php
// ... 连接数据库代码 ...

$sql = "DELETE FROM users WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $id);

$id = 1;

$stmt->execute();

echo "记录删除成功";

$stmt->close();
$conn->close();
?>

更新(Update)

代码语言:txt
复制
<?php
// ... 连接数据库代码 ...

$sql = "UPDATE users SET email = ? WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("si", $email, $id);

$email = "new.email@example.com";
$id = 1;

$stmt->execute();

echo "记录更新成功";

$stmt->close();
$conn->close();
?>

查询(Select)

代码语言:txt
复制
<?php
// ... 连接数据库代码 ...

$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 结果";
}

$conn->close();
?>

常见问题及解决方法

连接失败

原因:可能是数据库服务器未启动、用户名密码错误、数据库名称错误等。

解决方法

  1. 确保数据库服务器已启动。
  2. 检查用户名和密码是否正确。
  3. 确认数据库名称是否正确。

SQL 语句错误

原因:可能是 SQL 语句语法错误或逻辑错误。

解决方法

  1. 使用 mysqli->error 获取详细的错误信息。
  2. 检查 SQL 语句的语法和逻辑。

预处理语句绑定失败

原因:可能是参数类型不匹配或绑定顺序错误。

解决方法

  1. 确保绑定参数的类型与 SQL 语句中的占位符类型一致。
  2. 检查绑定参数的顺序是否与 SQL 语句中的占位符顺序一致。

参考链接

通过以上示例和解释,你应该能够使用 mysqli 实现基本的增删改查操作,并解决一些常见问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MyBatis实现删改

目录 新建项目 准备相关配置 新建包和相关类 增删改实现 根据id查询用户 根据密码和名字查询用户 给数据库增加一个用户 修改用户的信息 根据id删除一个用户 小结 模糊语句 新建项目 这部分搭建环境在搭建...user: users){ System.out.println(user); } session.close(); } } 运行结果: 增删改实现...username","愷龍"); map.put("pwd","123456"); User user = mapper.selectUserByNP2(map); 如果参数过多,我们可以考虑直接使用Map实现...不写的话不会提交到数据库 session.close(); } 运行结果: 数据库结果: 注意:、删、改操作需要提交事务!...不写的话不会提交到数据库 session.close(); } 测试结果: 数据库结果: 小结 所有的增删改操作都需要提交事务!

49720
  • MYSQL——JBDC实现删改

    前言 友友们大家好,我是你们的小王同学 今天给大家带来的是MYSQL——JBDC实现删改 希望能给大家带来有用的知识 小王的主页:小王同学 小王的gitee:小王同学 小王的github...API概述 JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(斜体代表接口,需驱动程序提供者来具体实现): DriverManager:负责加载各种不同驱动程序...~ 接下来就是最精彩的CRUD辣~ 我们先在任务管理器创建一个学生表  接着在IDEA实现 往表里插入一行数据~ 新增(create) 代码附上: import com.mysql.cj.jdbc.MysqlDataSource...成功辣~~ 以上就是小王同学带给大家的通过jdbc连接IDEA来实现 CRUD 是不是很方便呢

    1.6K10

    看Zepto如何实现删改DOM

    先看下图,我们以删除元素,插入元素,复制元素,包裹元素和替换元素几个模块分别探究zepto如何一一将其实现。...prepend,prependTo是在元素的初始位置插入,after,insertAfter是在元素的后面插入内容,before,insertBefore则是在元素的前面插入内容 接下来我们开始学习和阅读实现这...到这里我们终于知道了'after', 'prepend', 'before', 'append'实现全过程(偷乐一下?,不容易啊)。.... html() ⇒ string 2. html(content) ⇒ self 3. html(function(index, oldHtml){ ... }) ⇒ self 源码实现...大家可以重新回去看一下append的核心实现。 wrap 在每个匹配的元素外层包上一个html元素。structure参数可以是一个单独的元素或者一些嵌套的元素。

    1.5K10

    jpa实现删改_hibernate入门案例

    目录 一、ORM思想 二、JPA规范 三、搭建JPA的基础环境 1.创建数据库表 2.创建Maven工程导入坐标 3.创建JPA的核心配置文件 4.编写实体类,配置映射关系 四、入门案例–增删改...这样就不用直接操作数据库,写SQL语句了,直接使用面向对象的技术,对象名.方法(),就可以实现对数据的增删改等。...", custAddress='" + custAddress + '\'' + ", custPhone='" + custPhone + '\'' + '}'; } } ---- 四、入门案例–增删改...1.jpa的操作步骤 1.加载配置文件创建工厂(实体管理类工厂)对象 2.通过实体管理类工厂获取实体管理类 3.获取事务对象,开启事务 4.完成增删改 5.提交事务(回滚事务) 6.释放资源...= em.getTransaction(); Transaction 对象 : 事务 begin:开启事务 commit:提交事务 rollback:回滚 4.增删改操作

    1.9K20
    领券