INSERT语句中的WHERE子句使用mysql / php
作者:互联网
在Google上搜索后,我才知道,
我不能在我的INSERT查询中使用WHERE子句.
但我想在列“Book_4”上插入一个值,其中“Student_ID = 1”
我怎样才能做到这一点 ??
有没有替代方法呢?
会感激你的!
$Query = "INSERT INTO issued_books (Book_4) VALUES ('$IssuedBookNumber')" ;
编辑:
更多细节
使用插入查询,当我在我的表中的“Student_ID”列中插入一个值. Student_ID行(Student_ID除外)中的所有列在我的数据库中显示为0.
根据DB,我知道这意味着什么.
它可能是Null或数字0.
如果它是数字0,则应使用UPDATE语句更新它.
但每当我试图更新它时,它永远不会使用UPDATE语句更新.这就是我要问的原因!
P.S:所有列都具有数据类型INT.
希望你明白我想说的话:)
这是完整的代码.
假设:已创建具有值2的Student_ID.
IssuedBookNumber = 51
使用以上值:
Result =创建一个新行,除了列为“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.那是一个更新. INSERT语句插入一个新行. UPDATE语句更新现有行.
UPDATE issued_books
SET Book_4 = '$IssuedBookNumber'
WHERE Student_ID = '$Student_ID'
(我假设您已正确转义$IssuedBookNumber和$Student_ID)
标签:php,mysql,sql-insert 来源: https://codeday.me/bug/20190925/1816827.html