我想将一些数据从已解析的 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/