插入数据库失败,错误代码为 1048


insert into database fails at error code 1048

   <?=form_open('forums/register');?>
            <table>
                <tr>
                    <td><label for="register_name">Username : </label></td>
                    <td><input type="text" name="register_name" disabled="disabled" value="<?=$_POST['username']?>"/></td>                    
                </tr>
                <tr>
                    <td><label for="register_email">Email:</label></td>
                    <td><input type="text" name="register_email" disabled="disabled" value="<?=$_POST['email']?>"/></td>                
                </tr>                
                <tr>
                    <td><label for="register_password">Password:</label></td>
                    <td><input type="password" name="register_password" disabled="disabled" value="<?=$_POST['password']?>"/></td>                
                </tr>               
                <tr>
                    <td></td>
                    <td><input type="submit" value="Register" onclick="return true;"/></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" value="Edit" onclick="window.location.replace('forums/index.php');return true;"></td>                    
                </tr>
            </table>
        <?=form_close()?>

这是我在用户信息保存到mysql表之前的确认公司。但是我遇到了这个错误,我不知道为什么,因为它适用于密码和激活密钥,但用户名和电子邮件地址都是空的。

Column 'name' cannot be null
INSERT INTO `membertb` (`name`, `email`, `pass`, `activation`) VALUES (NULL, NULL, 'd41d8cd98f00b204e9800998ecf8427e', '034db1787db6b3d72365507fcb2d1ca0')

成员数据读取如下

$member_data=array
        (
            'name'=> $p['register_name'],
            'email'=> $p['register_email'],
            'pass'=> md5($p['register_password']),
            'activation' => md5(uniqid(rand(),true))
        );

此初始化工作正常,就像我最近解决的问题一样。感谢您提供任何有用的更正..

您的 HTML 表单中的register_name字段被禁用。所以它不会发送到服务器。所以$p['register_name'] 是空的,我想你的"名称"字段不是空的。

尝试在 HTML 表单中使用只读而不是禁用。