我无法获得以下代码工作,它与数组的形成有关。数组实际上是在foreach()循环运行几次之后构建的,然后我想批量插入,但出现了格式错误。为什么?PHP CodeIgniter批插入不接受我的数组
foreach ($results as $r) {
$insert_array = array(
'ListingRid' => $r['ListingRid'],
'StreetNumber' => $r['StreetNumber'],
'StreetName' => $r['StreetName'],
'City' => $r['City'],
'State' => $r['State'],
'ZipCode' => $r['ZipCode'],
'PropertyType' => $r['PropertyType'],
'Bedrooms' => $r['Bedrooms'],
'Bathrooms' => $r['Bathrooms'],
'YearBuilt' => (2011 - $r['Age']),
'Status' => $r['Status'],
'PictureCount' => $r['PictureCount'],
'SchoolDistrict' => $r['SchoolDistrict'],
'ListedSince' => $r['EntryDate'],
'MarketingRemarks' => $r['MarketingRemarks'],
'PhotoUrl' => (!empty($photo_url) ? $photo_url : 'DEFAULT'),
'ListingAgentFirstName' => $r['ListingAgentFirstName'],
'ListingAgentLastName' => $r['ListingAgentLastName'],
'ContactPhoneAreaCode1' => (!empty($a['ContactPhoneAreaCode1']) ? $a['ContactPhoneAreaCode1'] : 'DEFAULT'),
'ContactPhoneNumber1' => (!empty($a['ContactPhoneNumber1']) ? $a['ContactPhoneNumber1'] : 'DEFAULT'),
'ListingOfficeName' => (!empty($r['ListingOfficeName']) ? $r['ListingOfficeName'] : 'DEFAULT'),
'OfficePhoneComplete' => (!empty($o['OfficePhoneComplete']) ? $o['OfficePhoneComplete'] : 'DEFAULT'),
'last_updated' => date('Y-m-d H:i:s')
);
$insert[] = $insert_array;
}
$this->db->insert_batch('listings', $insert);
这里的错误:
甲PHP错误遇到
严重性:警告
消息:array_keys()[function.array-键]:第一个参数应 是一个数组
文件名:database/DB_active_rec.php
行号:1148
甲PHP错误遇到
严重性:警告
消息:排序()预计参数1是阵列,空给出
文件名:数据库/ DB_active_rec.php
行号:1149
有什么想法?谢谢!
我认为这可能是因为我的数组太大。它正在工作,但是可以一次插入批次执行1000多条记录? –
我不认为这会是太多的记录,因为你会得到一个不同的错误。这部分代码看起来很可疑: '(!empty($ a ['ContactPhoneAreaCode1'])?$ a ['ContactPhoneAreaCode1']:'DEFAULT')'。我认为这段代码返回一个布尔值,因为你已经用圆括号包装了它。虽然我不认为这是罪魁祸首,但我同意@HerrKaleun,并且您可能会检查数组的元素,因为所有其他代码看起来都是正确的(基于配置项文档)。 – swatkins
我也同意swatkins,你应该逐一检查每个数组,因为你的代码的'基本版'工作。 – Herr