php - 使用 mysqli 从数组插入 MySQL

标签 php mysql sql mysqli

我想将一些数据从已解析的 JSON 插入到表中,但是当我这样做时,它不起作用,它返回 0 行,我错过了什么?我是这个“mysqli”的新手。我有超过 25000 行要插入到表中。

$mysqli = mysqli_connect('localhost', 'root', '', '');

$allData = $dataSource->getAllData();
foreach ($allData as $key => $value) {
    $query = 'INSERT INTO `table`(`data_id`, `name`) VALUES (' . $value['data_id'] . ', ' . $value['name'] . ')';
    $result = mysqli_query($mysqli, $query);
}

最佳答案

您应该使用准备好的语句。使用参数绑定(bind)不仅更安全(没有 SQL 注入(inject)),而且在添加 25000 行时速度也会更快一些。

带有错误报告和准备好的语句的固定代码如下所示:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'root', '', 'dbname');
$mysqli->set_charset('utf8mb4');

$allData = $dataSource->getAllData();

$stmt = $mysqli->prepare('INSERT INTO `table`(`data_id`, `name`) VALUES (?,?)');

foreach ($allData as $key => $value) {
    $stmt->bind_param('ss', $value['data_id'], $value['name']);
    $stmt->execute();
}

关于php - 使用 mysqli 从数组插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24333301/

相关文章:

javascript - 使用 strtotime PHP 转换时间

php - Prestashop 迁移,index.php 未执行

SQL Server 对象资源管理器不显示当前数据库

php - 在 COUNT 查询上传递静态值 (PHP/MySQL)

javascript - PHP上传512MB文件库

php - 使用 version_compare 对多维数组进行排序

javascript - 无法将文本区域值传递到我的表单

mysql - Web 统计表的数据库字段

php - 我应该如何存储非树形层次结构数据(即任何通用图)?

c# - Sharepoint 数据库安全 - SQL 注入(inject)