所以我试图用数据填充我的表格,但我不断收到此错误:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'teamName' cannot be null
奇怪的是,如果我回显 $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 个,这很奇怪吗?不确定为什么它在每个循环中两次放置相同的值?但是如果它在那里填满它显然填满了表格所以我不明白这个错误说它是空的?已经为这个问题苦苦挣扎了一段时间
如果有人知道出了什么问题,我将非常感谢您的帮助,在此先感谢! :)
最佳答案
因为你执行了两次,
$stmt->execute();
删除此行,您的代码将正常工作
关于php - SQLSTATE[23000] : Integrity constraint violation: 1048 Column 'teamName' cannot be null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46360579/