我試圖插入一些數據到數據庫中。 首先我確定我確實有數據。 我找不到原因,爲什麼沒有插入數據。插入到mysql結果重複的鍵
echo 'os_id = ', $os_id, ' os_shoph = ', $os_shoph, ' os_shopd = ', $os_shopd;
$insert = $db->prepare("INSERT `f2go`.`prints` ("
. "prt_os_id, prt_ts, prt_shoph, prt_shopd)"
. "VALUES (?, NOW(), ?, ?)");
$insert->bind_param('iss',
$os_id,
$os_shoph,
$os_shopd);
if($insert->execute()) {
echo '<h1>Print new order ', $os_id, '</h1>';
} else {
echo '<h1>Re-print order ', $os_id, '</h1>';
}
}
我添加了錯誤檢查。
if (!($insert = $db->prepare("INSERT `f2go`.`prints` ("
. "prt_os_id, prt_ts, prt_shoph, prt_shopd)"
. "VALUES (?, NOW(), ?, ?)"))) {
echo "Prepare failed: (" . $db->errno . ") " . $db->error;
}
if (!$insert->bind_param("iss", $os_id, $os_shoph, $os_shopd)) {
echo "Binding parameters failed: (" . $insert->errno . ") " . $insert->error;
}
if (!$insert->execute()) {
echo "Execute failed: (" . $insert->errno . ") " . $insert->error;
}
結果是:
os_id = "206" os_shoph = 0228099392 os_shopd = example
Re-print order "206"
Execute failed: (1062) Duplicate entry '0' for key 'prt_os_id'
的數據庫列OS_ID被設置爲 '獨一無二' 我想不通爲什麼OS_ID = 206將被視爲 '0'
插入
的OS_ID似乎有值 「206」(帶引號),而不是206 –
您$ OS_ID,無論它來自與精確** 5個字符的字符串**:'」 206「'所有字符數。用一個簡單的回聲,如果你看到**「**在輸出意味着這個$ os_id包含其他字符,那麼數字。 –
我試圖echo'os_id =',intval($ os_id),但這也給我也只是0 –