解决错误代码:Column 'user_id' cannot be null

本文档介绍了如何在PHP代码中解决数据库错误“Column 'user_id' cannot be null”的常见原因,以及提供详细的代码修改方案。

错误原因

数据库错误“Column 'user_id' cannot be null”通常表示在插入数据时,'user_id' 列没有被赋值,而该列不允许为空。此错误通常发生在 'user_id' 列被设置为自动增长的列时。

代码修改

以下是需要修改的代码,以及修改说明:

<?php
include 'sql.php';

$user_name = $_POST['user_name'];
$user_login = $_POST['user_login'];
$user_password = $_POST['user_password'];
$user_repassword = $_POST['user_repassword'];

if (isset($user_name) && isset($user_login) && isset($user_password) && isset($user_repassword)) {
	if ($user_password == $user_repassword) {
		$query = "SELECT * FROM user WHERE user_login = '$user_login'" ;
		$result = mysqli_query($con, $query);
		if (mysqli_num_rows($result) > 0) {
			echo "此登录码已被占用";
		} else {
			$insert_query = "INSERT INTO user (user_name, user_password, user_login) VALUES ('$user_name', '$user_password', '$user_login')";
			if (mysqli_query($con, $insert_query)) {
				$get_query = "SELECT user_id FROM user WHERE user_login = '$user_login' AND user_password = '$user_password'" ;
				$result = mysqli_query($con, $get_query);
				if (mysqli_num_rows($result) > 0) {
					$row = mysqli_fetch_assoc($result);
					$user_id = $row['user_id'];
					$cookie_user_id = $user_id;
					$cookie_user_password = $user_password;
					setcookie($cookie_user_id, $cookie_user_password, time() + (30 * 24 * 60 * 60), "/");
				} else {
				    echo "注册成功,登录失败";
				}
			} else {
				echo "注册失败:" . mysqli_error($con);
			}
		}
	} else {
		echo "两次密码不同";
	}
} else {
	echo "请仔细填写表单";
	echo "用户名:" . $user_name;
	echo "登录码:" . $user_login;
	echo "密码:" . $user_password;
	echo "确认密码:" . $user_repassword;
}
?>

修改说明

  1. $insert_query 的SQL语句中的 user_id 字段设为 NULL,因为该字段具有自动增长属性,无需手动指定值。
  2. $con->query 改为 mysqli_query,以使用 mysqli 函数进行查询。
  3. $row = $result->fetch_assoc() 改为 $row = mysqli_fetch_assoc($result),以使用 mysqli 函数获取查询结果的关联数组。
  4. 登陆码 改为 登录码,保持命名一致。
  5. 添加冒号,以增加输出的可读性。

总结

通过上述修改,我们成功解决了数据库错误 “Column 'user_id' cannot be null”。在使用自动增长列时,确保在插入数据时不要手动指定该列的值。同时,建议使用 `mysqli_query` 函数进行数据库操作,以确保代码的兼容性。

解决错误代码:Column 'user_id' cannot be null

原文地址: https://www.cveoy.top/t/topic/bUoC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录