我正在尝试读取数据文件并插入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);
}
?>
我有更多的数据字段要输入但是为了调试我只是尝试一个。任何帮助或建议将不胜感激!
答案 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)。您的问题的解决方案是为主键或传递一个唯一值,以将该主键列设置为自动增量。