将多个数组值插入数据库

时间:2015-07-23 07:17:14

标签: php mysql

我正在尝试读取数据文件并插入mySQL中的表中。我已经尝试构建一个数组和imploding,以及像这样的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);
            }
?>

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

2 个答案:

答案 0 :(得分:0)

试试这个:

$sql = "INSERT INTO property (APN)
                    VALUES";
foreach ($apnArray as $val) {
    $sql .= "('$val'),";
}
$sql = trim($sql, ",");
mysqli_query($con, $sql);

答案 1 :(得分:0)

我不能肯定地说你的代码有什么问题,但是你可以做一些修改,它可以告诉你发生了什么:

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)。您的问题的解决方案是为主键传递一个唯一值,以将该主键列设置为自动增量。