使用数组搜索从插入中跳过重复数据。但它抛出了PDO错误:
SQLSTATE [23000]:完整性约束违规:1062重复条目 '053fb04a34907637530dcb86b9f121f5fe499821'用于键'id'“
$check=$this->pdo->prepare("select id from user_places");
$check->execute();
$a = $check->fetchAll(PDO::FETCH_COLUMN, 0);
for ($i = 0; $i < count($output->results); $i++) {
if (array_search($data[$i]['id'], $a) == "") {
$query->bindparam(1,$data[$i]['id']);
$query->bindparam(2,$data[$i]['name']);
$query->bindparam(3,$data[$i]['lat']);
$query->bindparam(4,$data[$i]['lng']);
$query->bindparam(5,$data[$i]['place_id']);
$query->bindparam(6,$data[$i]['types']);
$query->bindparam(7,$data[$i]['vicinity']);
$query->execute();
}
}
答案 0 :(得分:0)
From the manual for array_search
:
警告 此函数可能返回布尔值FALSE,但也可能返回非布尔值,其值为FALSE。有关更多信息,请阅读有关布尔值的部分。使用===运算符测试此函数的返回值。
您正在检查array_search($data[$i]['id'], $a) == ""
,如果在索引0处找到$data[$i]['id']
(即数组中的第一个元素),则会评估为真
请尝试使用此代码:
if (array_search($data[$i]['id'], $a) === false) {