【发布时间】:2016-05-27 10:55:51
【问题描述】:
我有一个表,其中的列允许空值并具有默认空值。更新时,如果该字段为空(未插入数据),我的脚本将插入 0 而不是 null。我遇到了与我类似的问题,并且我尝试了给出的建议,但仍然无法解决我的问题。这是我的代码
<?php
if (isset($_POST['submit'])) {
# process the form
$student_id = $_POST["student_id"];
$subject_id = $_POST['subject_id'];
if (is_null($_POST["test1"])){$test1 = null;} else {$test1 = $_POST["test1"];}
if (is_null($_POST["test2"])){$test2 = null;} else {$test2 = $_POST["test2"];}
if (is_null($_POST["test3"])){$test3 = null;} else {$test3 = $_POST["test3"];}
for($i=0; $i < count($student_id); $i++) {
$studentid = mysqli_real_escape_string($connection, $student_id[$i]);
$subjectid = mysqli_real_escape_string($connection, $subject_id);
$test_1 = mysqli_real_escape_string($connection, $test1[$i]);
$test_2 = mysqli_real_escape_string($connection, $test2[$i]);
$test_3 = mysqli_real_escape_string($connection, $test3[$i]);
$query = "UPDATE fullresult SET test1='{$test_1}', test2='{$test_2}', test3='{$test_3}' WHERE student_id={$studentid} AND subject_id={$subjectid}";
$result = mysqli_query($connection, $query);
}
}
?>
当我回显查询时,这就是我所看到的,我想知道为什么我仍然插入 0
UPDATE fullresult SET test1=' 10', test2=' ', test3=' ' WHERE student_id=51 AND subject_id=2
【问题讨论】:
-
SET test1=" . $test_1 == null ? "null" : "'$test_1'" . " -
test1.. 字段是整数吗?
-
@ErikTerwan 是的,这些字段是整数