在Google上搜索后,我才知道, 我不能在我的INSERT查询中使用WHERE子句。 但我想在“Book_4”列中插入一个值,其中“Student_ID = 1”
我该怎么做? 有没有替代方法呢?
会感激你!
$Query = "INSERT INTO issued_books (Book_4) VALUES ('$IssuedBookNumber')" ;
EDITED: 更多细节 使用插入查询,当我在我的表中的“Student_ID”列中插入一个值。 Student_ID行(Student_ID除外)中的所有列在我的数据库中显示为0。 根据DB,我知道这意味着什么。 它可能是Null或数字0。 如果它是数字0,则应使用UPDATE语句更新它。 但每当我试图更新它时,它永远不会使用UPDATE语句更新。这就是我要问的原因!
P.S:所有列都有数据类型INT。
希望你明白我想说的话:)。
这是完整的代码。 假设:已创建具有值2的Student_ID。 IssuedBookNumber = 51
使用以上值: Result =创建一个新行,其中所有列都为0,但“IssuedBookNumber”列的值为= 51。
虽然我想要,结果应该是: 在行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);
}
答案 0 :(得分:2)
那不是INSERT。这是 UPDATE 。 INSERT语句插入 new 行。 UPDATE语句更新现有行。
UPDATE issued_books
SET Book_4 = '$IssuedBookNumber'
WHERE Student_ID = '$Student_ID'
(我假设您已正确转义$IssuedBookNumber
和$Student_ID
)
答案 1 :(得分:1)
如果您可以在2列组合上添加唯一索引(book_4,student_id)
这将是一个很好的查询,并且可以替换上面的大部分代码
INSERT INTO issued_books (book_4, student_id) VALUES('$IssuedBookNumber','$Student_ID')
ON DUPLICATE KEY UPDATE
SET Book_4 = '$IssuedBookNumber';
注意:您不需要上面的循环,因为$ Book_4将始终返回最后一行的值。
您的代码将如下所示:)
$IssuedBookNumber = $_POST['IssuedBookNumber'];
$Student_ID = $_POST['StudentId'];
$Update = "UPDATE issued_books SET Book_4='$IssuedBookNumber' WHERE Student_ID= '$Student_ID'";
mysql_query ($Update);
你应该考虑的事情,
答案 2 :(得分:0)
为什么不这样:
$Query = "INSERT INTO issued_books (Book_4, Student_ID)
VALUES ('$IssuedBookNumber', '$Student_ID')"
答案 3 :(得分:0)
使用update
声明。
update issued_books set Book_4 = $IssuedBookNumber
where Student_ID = '$Student_ID'