在Google上搜索後,我才知道, 我不能在INSERT查詢中使用WHERE子句.. 但是我想在列「Book_4」上插入一個值, 「Student_ID = 1」INSERT語句中使用mysql/php的WHERE子句
我該怎麼做? 有沒有其他方法可以做到這一點?
會感謝你!
$Query = "INSERT INTO issued_books (Book_4) VALUES ('$IssuedBookNumber')" ;
編輯: 更多詳細信息 使用插入查詢,當我插入列「student_id數據」在我的表中的值。 Student_ID行(Student_ID除外)中的所有列在我的數據庫中顯示爲0。 我知道這是什麼意思根據數據庫。 它可能爲空或數字0. 如果它是數字0,則應使用UPDATE語句更新它。 但是,每當我試圖更新它,它永遠不會更新使用UPDATE語句。這就是爲什麼我問!
P.S:所有列都有數據類型INT。
希望你明白我想說的話:)
這裏是完整的代碼。 假設:student_id數據已經創建具有值2。 IssuedBookNumber = 51
使用上述值: 結果=一個新行創建具有除了列「IssuedBookNumber」,即具有值= 51的所有列0。
雖然我想,結果應該是: 論行student_id數據= 2時,Book_4應51.
問題是,當我在student_id數據插入的值,所有其它列在同一行上變爲0 。但是,當同一行中的任何一列有除0之外的任何數字(當我在Student_ID中插入一個值時,它自動出現在所有列上)。更新查詢將工作..!
$IssuedBookNumber = $_POST['IssuedBookNumber'];
$Student_ID = $_POST['StudentId'];
$FetchingQuery = "SELECT * FROM issued_books WHERE Student_ID='" . $Student_ID . "'";
$RunFetchingQuery = mysql_query($FetchingQuery);
while ($row = mysql_fetch_array($RunFetchingQuery)) {
$Book_1 = $row[ 'Book_1' ];
$Book_2 = $row[ 'Book_2' ];
$Book_3 = $row[ 'Book_3' ];
$Book_4 = $row[ 'Book_4' ];
$Book_5 = $row[ 'Book_5' ];
}
if(!empty($Book_4))
{
$Update = "UPDATE issued_books SET Book_4='$IssuedBookNumber' WHERE Student_ID= '$Student_ID'";
mysql_query ($Update);
}
else
{
$AddQuery = "INSERT INTO issued_books (Book_4) VALUES ('$IssuedBookNumber')";
mysql_query ($AddQuery);
}
這是因爲規定^但INSERT語句將不接受一個WHERE子句....學習了一下SQL –
的['INSERT ... ON DUPLICATE KEY UPDATE'(HTTP://開發。 mysql.com/doc/refman/5.6/en/insert-on-duplicate.html)。 –
我們需要知道您正在使用哪個MySQL API進行連接。 'mysql_'? 'mysqli_'? PDO?其他? –