簡體   English   中英

數組搜索PHP mysql PDO

[英]Array search PHP mysql PDO

使用數組搜索可跳過插入的重復數據。 但這會引發PDO錯誤:

SQLSTATE [23000]:違反完整性約束:1062項“ id”的條目重復“ 053fb04a34907637530dcb86b9f121f5fe499821”

$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();
    }
}

array_search的手冊中

警告此函數可能返回布爾FALSE,但也可能返回非布爾值,其值為FALSE。 請閱讀布爾值部分以獲取更多信息。 使用===運算符測試此函數的返回值。

您正在檢查array_search($data[$i]['id'], $a) == "" ,如果在索引0處找到$data[$i]['id'] (如果數組中的第一個元素)

嘗試使用此代替:

if (array_search($data[$i]['id'], $a) === false) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM