PHP Forloop循环遍历数组并将当前数组项插入sql数据库,只插入一个记录

时间:2016-01-09 05:59:42

标签: php mysql pdo

我有一个从数据库获取数据的脚本,然后使用forloop循环遍历SELECT查询的结果,并且有一个查询将数组数据插入到另一个数据库中。但是只插入第一条记录。

我没有错误

这是代码。

//Get all from job
$getRecords = $connection->prepare("SELECT `CustomerFirstName`,`CustomerLastName`,`CASS_STD_LINE1`,`CASS_STD_LINE2`,`CASS_STD_CITY`,`CASS_STD_STATE`,`CASS_STD_ZIP`,`CustomerCounty`,`CustomerNumber`,`DealNumber`,`TradeIn_1_VIN`,`TradeIn_1_Make`,`TradeIn_1_Model`,`TradeIn_1_Year`,`FrontGross`,`BackGross`,`HoldBackAmount`,`VehicleYear`,`VehicleMake`,`VehicleModel`,`VehicleVIN`,`EntryDate`,`matched`,`notNew` FROM `auth` WHERE `matched` = ?");
$getRecords->execute(array($_POST['jobName']));
$gotRecords = $getRecords->fetchAll(PDO::FETCH_ASSOC);
$getRecords = null;


//Loop Through all records found with matching job name
for($i=0;$i<count($gotRecords); ++$i){
    $rec = $remote->prepare("INSERT INTO `cob_matched_records`(first) VALUES (?)");
    $rec->execute(array($gotRecords[$i]['CustomerFirstName']));

}

1 个答案:

答案 0 :(得分:1)

您的脚本问题很可能是

False || True = True

在代码到达你的for循环之前销毁数组。
(但这不适合您的描述“但是只插入了第一条记录。”。您是否发布了实际的,未经修改的代码?)

准备好的陈述的要点(或其中一点)是你准备一次,然后用不同的参数多次执行它们。因此,在循环之前准备一次INSERT语句,然后使用当前参数执行它:

$getRecords = null;