当前位置: 首页 > article >正文

PHP MySQL 插入多条数据

PHP MySQL 插入多条数据

在Web开发中,PHP和MySQL的组合是非常常见的。PHP是一种服务器端脚本语言,而MySQL是一种流行的数据库管理系统。在许多情况下,我们可能需要一次性向MySQL数据库插入多条数据。这可以通过几种不同的方法实现,每种方法都有其优缺点。本文将详细介绍如何在PHP中向MySQL数据库插入多条数据,包括使用原生SQL语句、使用预处理语句以及使用ORM(对象关系映射)库。

使用原生SQL语句插入多条数据

最简单的方法是使用原生SQL语句。这种方法直接且易于理解,但可能存在SQL注入的风险,因此需要特别小心地处理用户输入。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

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

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

// SQL语句
$sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com'), ('Mary', 'Moe', 'mary@example.com'), ('Julie', 'Dooley', 'julie@example.com')";

if ($conn->multi_query($sql) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

使用预处理语句插入多条数据

为了防止SQL注入,我们可以使用预处理语句。这种方法不仅更安全,而且执行效率更高。

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

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

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

// 预处理语句
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?)");

// 绑定参数
$stmt->bind_param("ssssssssss", $firstname1, $lastname1, $email1, $firstname2, $lastname2, $email2, $firstname3, $lastname3, $email3);

// 设置参数值
$firstname1 = "John";
$lastname1 = "Doe";
$email1 = "john@example.com";
$firstname2 = "Mary";
$lastname2 = "Moe";
$email2 = "mary@example.com";
$firstname3 = "Julie";
$lastname3 = "Dooley";
$email3 = "julie@example.com";

// 执行语句
$stmt->execute();

echo "新记录插入成功";

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

使用ORM库插入多条数据

ORM(对象关系映射)库,如Doctrine或Laravel的Eloquent,可以让我们以面向对象的方式处理数据库操作。这种方法更加安全,代码也更加清晰,但可能会稍微降低执行效率。

以Laravel的Eloquent为例:

<?php

use Illuminate\Database\Capsule\Manager as Capsule;

// 创建ORM实例
$capsule = new Capsule;

// 配置数据库连接
$capsule->addConnection([
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'myDB',
    'username'  => 'username',
    'password'  => 'password',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
]);

// 设置全局静态可访问
$capsule->setAsGlobal();

// 启动Eloquent
$capsule->bootEloquent();

// 创建数据模型
class Guest extends \Illuminate\Database\Eloquent\Model
{
    protected $table = 'myguests';
    protected $fillable = ['firstname', 'lastname', 'email'];
}

// 插入多条数据
Guest::insert([
    ['firstname' => 'John', 'lastname' => 'Doe', 'email' => 'john@example.com'],
    ['firstname' => 'Mary', 'lastname' => 'Moe', 'email' => 'mary@example.com'],
    ['firstname' => 'Julie', 'lastname' => 'Dooley', 'email' => 'julie@example.com'],
]);

echo "新记录插入成功";

总结

向MySQL数据库插入多条数据是PHP开发中的常见任务。本文介绍了三种不同的方法:使用原生SQL语句、使用预处理语句以及使用ORM库。每种方法都有其适用场景,开发者应根据具体需求和安全性


http://www.kler.cn/a/448798.html

相关文章:

  • css让按钮放在最右侧
  • 信奥赛四种算法描述
  • 【快速上手】linux环境下Neo4j的安装与使用
  • Vue(二)
  • 中国人工智能学会技术白皮书
  • 让汉语和英语一样长的字符编码
  • electron-vite【实战】登录/注册页
  • 实践:从一次故障聊聊前端 UI 自动化测试
  • ROS2 python编写 intel realsense D405相机节点通过launch.py启动多个相机并发送图像话题,基于pyrealsense2库
  • 网络编程 03:端口的定义、分类,端口映射,通过 Java 实现了 IP 和端口的信息获取
  • jvm字节码中方法的结构
  • 在Excel中如果制作可以自动填充的序号,删除或者合并单元也可用
  • 游戏世界是什么
  • MySQL专题:日志及MVCC
  • CSS系列(22)-- 容器查询详解
  • 【译】仅有 Text2SQL 是不够的: 用 TAG 统一人工智能和数据库
  • 前端算法小白日刷三题17
  • 最全解决方案:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.
  • 基于微信平台的文玩销售小程序ssm+论文源码调试讲解
  • Restaurants WebAPI(四)——Identity
  • 241221面经
  • powershell使用积累
  • 一起学Git【第一节:Git的安装】
  • Llama 3 模型系列解析(一)
  • 王佩丰24节Excel学习笔记——第十七讲:数据函数
  • HTML中的Vue3解析!