我得到一個非常有趣的問題與我的代碼。基本上我第一次運行代碼時,我從mysqli_effected_rows()
函數中得到了正確的結果。但第二次我運行相同的腳本它一直給我「-100」mysql_affected_rows()返回-100
如果我刪除表中的所有記錄並再次運行代碼,我從mysqli_effected_rows()
函數得到正確的結果。
是「-100」的錯誤代碼?
$count ="";
foreach($database as $key=>$value) {
foreach($value as $field => $cell){
if ($field =='itemid') {
echo "the item id is $cell <br />";
$col1 = $cell ;
}
elseif ($field =='title') {
echo "the title is $cell<br />";
$col2 = $cell;
}
elseif ($field =='starttime') {
echo "the start time is $cell<br />";
$col3 = $cell;
}
}
$dbquery = "INSERT INTO cordless_drill(itemid,title,starttime) VALUES ('$col1','$col2','$col3')";
mysqli_query($dbc,$dbquery);
$count += mysqli_affected_rows($dbc);
}
echo $count ;
可能是唯一的密鑰約束違規?你可以顯示你的'cordless_drill'表定義,包括鍵和約束請。 – StuartLC
正確的數字應該是100嗎?如果查詢失敗,mysqli_affected_rows返回-1,所以如果有100個插入失敗,你將得到-100。大概你有一個主鍵,當你再次運行腳本時,它不允許你插入一個重複的行。 –
如果數據庫有100行,每行返回-1,所以結果將是-100嘗試回顯查詢並查看它。 –