php - 一般错误:1366 整数值不正确:INT 类型列的“NULL”
问题描述
我的数据库中有一个 int 列,我根据用户在我的 html\php 代码中选择的下拉菜单更新它:
<select name="regularClass">
<option value=NULL selected>None</option>
<?php
$sql = "SELECT idClass FROM Class WHERE category='ET'";
$result = $conn->query($sql);
$result = $conn->query($sql);
$row_count = $result->rowCount();
if ($row_count > 0){
while ($row = $result->fetch())
{
echo "<option value=".$row['idClass'].">".$row['idClass']."</option>";
}
}
?>
</select><br><br>
Transportaion:
<input type="radio" name="transportation" value="BUS" checked>Bus</option><br>
<input type="radio" name="transportation" value="KHAS">Khas</option><br>
Bus:
<select id="busDropdown" name="bus">
<option value=NULL selected>None</option>
<?php
$sql = "SELECT busNumber FROM Bus";
$result = $conn->query($sql);
$row_count = $result->rowCount();
if ($row_count > 0){
while ($row = $result->fetch())
{
echo "<option value=".$row['busNumber'].">".$row['busNumber']."</option>";
}
}
?>
</select><br><br>
如果没有,我需要用户选择一个公共汽车号码或“无”。我收到错误的问题:
致命错误:未捕获的 PDOException:SQLSTATE [HY000]:一般错误:1366 不正确的整数值:第 1 行的列“Bus_busNumber”的“NULL”
错误是从以下几行引发的:
<?php
if (isset($_POST['save']))
{
try{
$ssn = $_POST['ssn'];
} catch (DataIntegrityViolationException $e) {
System.out.println("Student already registered");
}
$fullName = $_POST['fullName'];
$transportation = $_POST['transportation'];
$qualification = $_POST['qualification'];
$neighborhood = $_POST['neighborhood'];
$dob = $_POST['dob'];
$email = $_POST['email'];
$bus = $_POST['bus'] ;
$grade = $_POST['grade'];
$notes = $_POST['notes'];
$nationality = $_POST['nationality'];
$regularClass = (int)$_POST['regularClass'];
$mobileNumber = $_POST['mobile'];
$phone = $_POST['phone'];
$stmt= $conn->prepare("INSERT INTO Student (ssn, name, transportation, qualification, neighborhood, dob, email, Bus_busNumber, grade,note, nationality, Class_idClass, mobile, phone)
VALUES (:ssn,:fullName,:transportation,:qualification,:neighborhood,:dob,:email,:bus,:grade,:notes,:nationality,:regularClass,:mobileNumber,:phone)
");
$stmt->bindParam(':ssn',$ssn);
$stmt->bindParam(':fullName',$fullName);
$stmt->bindParam(':transportation',$transportation);
$stmt->bindParam(':qualification',$qualification);
$stmt->bindParam(':neighborhood',$neighborhood);
$stmt->bindParam(':dob',$dob);
$stmt->bindParam(':email',$email);
$stmt->bindParam(':bus',$bus);
$stmt->bindParam(':grade',$grade);
$stmt->bindParam(':notes',$notes);
$stmt->bindParam(':nationality',$nationality);
$stmt->bindParam(':regularClass',$regularClass);
$stmt->bindParam(':mobileNumber',$mobileNumber);
$stmt->bindParam(':phone',$phone);
$stmt->execute();
$stmt->CloseCursor();
exit;
}
?>
我知道这个错误来自空值,这是该列的默认值!我不想更改严格模式(我在阅读许多帖子后找到的解决方案)我需要解决这个问题。请帮我解决这个问题..
解决方案
推荐阅读
- mysql - mysql left join with group_concat - 只显示一个结果
- faunadb - 无法使用 FaunaDB 中的特定用户登录
- vb.net - 在 EXE 所在的文件夹中创建文档 (VB)
- c# - 具有不同泛型类型参数的继承类不可强制转换
- html - 在 HTML 中使文本字符串具有一定长度的最简单方法
- java - Log4j2:更改特定用户和特定记录器的日志级别:未按预期工作
- twig - 如何从文本呈现模板?
- javascript - 将参数传递给同一控制器 asp.net 中的不同操作
- c# - 只需按下快门即可拍照
- webpack - 如何将 sass 文件导出到 dist 文件夹保留文件夹结构?