数组搜索PHP mysql PDO

时间:2016-06-15 13:10:28

标签: php arrays pdo

使用数组搜索从插入中跳过重复数据。但它抛出了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();
    }
}

1 个答案:

答案 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) {