![](/img/trans.png)
[英]SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'status' cannot be null
[英]SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'teamName' cannot be null
所以我試圖用數據填充我的表,但我不斷收到此錯誤:
SQLSTATE [23000]:違反完整性約束:1048列“ teamName”不能為空
奇怪的是,如果我回顯$ myarray [1],它將循環通過並正確打印每個團隊的名稱,所以我不明白為什么我在讀取數據時遇到這么多問題? 數組顯然不包含空值?
這是表格的創建:
$createQuery ="CREATE TABLE TeamTable
(
teamID INT(6) NOT NULL AUTO_INCREMENT,
teamName VARCHAR(60) NOT NULL,
Flag BLOB,
Country VARCHAR(30) NOT NULL,
PRIMARY KEY(teamID)
)";
$pdo->exec($createQuery);
這是我要插入表格的位置:
$filet = fopen("team.csv", "r");
while(!feof($filet))
{
$myarray = fgetcsv($filet);
$insertTeamQuery ="INSERT into TeamTable(teamName, Country, Flag) VALUES(:val1,:val2,:val3)";
$stmt = $pdo->prepare($insertTeamQuery);
echo $myarray[1];
$stmt->execute(array(':val1' => $myarray[1], ':val2' => $myarray[2], ':val3' => $myarray[3]));
$stmt->execute();
}
fclose($filet);
我檢查了PHPmyadmin,它有6個團隊,但每個團隊我只有2個,這很奇怪嗎? 不知道為什么每個循環都將相同的值放入兩次? 但是,如果將表填滿,顯然可以填滿表格,因此我不理解該錯誤,因為它說它為null? 現在已經為此苦苦掙扎了很長時間
如果有人知道怎么了,我將不勝感激,在此先感謝您的幫助! :)
這是因為您執行了兩次,
$stmt->execute();
刪除此行,您的代碼將正常運行
如果您希望insert
繼續工作,可以嘗試使用INSERT IGNORE
INSERT into TeamTable (teamName, Country, Flag) VALUES (:val1,:val2,:val3);
set
部分不執行任何操作-值不變-但結果是忽略該錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.