PHP Fatal Error: Column 'avatar' cannot be null

PHP Fatal Error: Column 'avatar' cannot be null

我正在尝试开发一个注册系统(我正在开发这个网站-> bottlesbeach.eu 只是为了训练我在后端部分的实践知识)插入用户名、电子邮件、密码、会话字符串并采取来自头像数组的随机字符串,表示用户头像的名称:

        $avatars = array("avatar0.png", "avatar1.png", "avatar2.png", "avatar3.png", "avatar4.png");
        $k = array_rand($avatars);
        $v = $array[$k];
        mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
        $query = "INSERT INTO users SET username = ?, email = ?, avatar = ?, password = ?, sessionid = ?";
        $stmt = $conn->prepare($query);
        $stmt->bind_param('sssss', $username, $email, $v, $password, $randomString);
        $stmt->execute();
        $sub = true;
        

这是提交表单时抛出的错误:

第 'avatar' 列不能为空

我不知道为什么会收到此错误,也许“$ v”变量为空,但我不知道为什么会这样。

有人知道在我的案例中是什么导致了这个异常?我该如何解决?

根据你的错误我可以推断出一些事情:

  1. table 中的 avatar 列是使用 NOT NULL 选项声明的。它不会接受 NULL 作为输入。

  2. 你的$vPHP变量没有设置,或者已经设置为PHP null value。我建议你使用 error_log(print_r($v, true)); 来检查这个。

要解决这个问题,您必须将 $v 设置为一个不是 null 的值,或者更改 table 以将 avatar 列更改为允许 NULL .