[英]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();
}
}
警告此函數可能返回布爾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.