我有一個簡單的PDO到MYSQL數據庫的插入代碼。動態傳遞值時PDO異常
這是我的代碼。
$catinsert="insert into shop_detail(shop_id,sub_category_id)values(:shop_id,:subcatid)";
$catresult=$pdocon->prepare($catinsert);
foreach($catexplode as $catval)
{
$subcat=$catval;
// $subcat=6;
$catresult->bindValue(':shop_id',$shopid,PDO::PARAM_INT);
$catresult->bindValue(':subcatid',$subcat,PDO::PARAM_INT);
$catresult->execute();
}
當我傳爲$ SUBCAT的靜態值(被註釋掉),那麼它工作得很好。但是,當相同的值通過數組傳遞並且有界時,它會返回外鍵完整性違例的異常。
爲了這個問題的背景。我有一個外鍵,它將shop_detail表的sub_category_id列與子類別表中的列名稱相同。
重要。 正在綁定和要插入的值確實存在於我的子類別表中。
這裏是詳細的錯誤。
exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`list`.`shop_detail`, CONSTRAINT `shop_to_subcat` FOREIGN KEY (`sub_category_id`) REFERENCES `sub_category` (`sub_category_id`))' in somewhat file.
你可以發佈$ catexplode的var_dump嗎? – Bert
@Bert非常感謝..據我所知,你要求var_dump的原因是檢查數據類型。我直接將我的變量轉換爲整數,併爲我工作。非常感謝。 – Archit