【发布时间】:2019-12-26 09:06:36
【问题描述】:
我有一个数据库,我正在尝试根据一些用户输入表单进行更新。我正在使用以下代码来更新 MySQL 数据库。
$query = "UPDATE supervisorupdate SET shift1PinCount =?, shift2PinCount =?, shift3PinCount =?, shift4PinCount =? WHERE Code=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $query)){
echo "updating supervisorupdate table when click save button SQL statement failed";
}else{
mysqli_stmt_bind_param($stmt,"iiiis", $shift1PinCount, $shift2PinCount, $shift3PinCount, $shift4PinCount, $Code);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
}
这里$shift1PinCount、$shift2PinCount、$shift3PinCount、$shift4PinCount 是我从用户输入表单中获得的一些$_POST 变量
我需要什么
假设如果用户没有在 $shift1PinCount 字段中键入任何内容,则查询不应将任何内容更新到 MySQL 数据库的 shift1PinCount 列中。
我的问题
使用我的查询,它总是更新所有 MySQL 列,无论用户是在用户输入表单中键入内容还是将其留空。有人知道怎么做吗?
【问题讨论】:
-
1.在读取请求参数时,检查其中哪些可以在更新查询中使用。 2.然后重新构造sql语句。 3. 传递输入数据并执行。
-
你能给我一些示例代码吗?
-
如果用户没有键入任何内容,那么默认值应该是多少?
-
@tcadidot0 如果用户没有在用户表单中键入任何内容,则数据库不应更改相应字段的任何内容。意味着如果数据库中已经存在一些值,它应该保持不变
-
@Henry 没问题。用户可以留空字段并更新数据库。这里的条件是,如果用户保留一些字段为空,那么数据库的数据将保持不变。我在将现有数据放入表单时遇到了其他问题。这就是为什么我不能这样做