php - 将数组的多个值插入数据库

标签 php mysql

我正在尝试读取数据文件并将其插入到 mySQL 中的表中。我尝试过构建一个数组并内爆,以及像这样的 foreach 循环,但只返回表的第一行。

<?php 
$str = file_get_contents('-');
$con = mysqli_connect('-', '-', '-','-');
$dataArray = explode("|",$str);
$blahArray = array();
foreach($dataArray as $info){
            $pD = unserialize($info);
            $pD->*->*->*;
            $pL = $pD->*->*->*[0];
            $blah = $pL->BLAH;
            array_push($blahArray,$blah);       
}
foreach($blahArray as $val){
            $sql = "INSERT INTO table (BLAH)
                    VALUES('$val')";            
            mysqli_query($con,$sql);
            }
?>

我还有很多数据字段需要输入,但为了调试,我只是尝试其中一个。任何帮助或建议将不胜感激!

最佳答案

我不能肯定地说你的代码有什么问题,但你可以进行以下修改,它可能会告诉你发生了什么:

foreach($apnArray as $val) {
    $sql = "INSERT INTO property (APN) VALUES('$val')";            
    $result = mysqli_query($con, $sql);
    if (false===$result) {
        printf("error: %s\n", mysqli_error($con));
    }
}

检查两件事。首先,确保您确实循环了 90 次。其次,查看每个 INSERT 查询执行时是否有错误。

更新:

根据您的评论,您似乎有一个带有唯一约束的主键,设置为自动增量。在 INSERT 查询中,您仅设置 APN 列的值,而不设置其他值。这意味着 MySQL 对此主键使用默认值 (0)。问题的解决方案是为主键传入唯一值以将该主键列设置为自动增量。

关于php - 将数组的多个值插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31580590/

相关文章:

php - 如何对 Symfony2 Controller 进行单元测试?

php - PHP 操作码缓存是否与 __autoload 一起使用?

javascript - 为什么 .getElementById ("name_val"+id).innerHTML 为空?

php - 我将如何获得 mysqli 最后插入的 id

sql - MySQL触发器在某些条件下防止INSERT

php - %27 错误出现在 url 链接中

mysql - 一个查询中的两个选择

MySQL 触发器根据插入和存储的值更新表

java - 适用于多种数据库类型的 Liquibase 二进制数组

PHP 登录脚本 - 登录次数