Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL插入到没有解释的错误中;通过语法测试_Php_Mysql_Mysqli - Fatal编程技术网

Php SQL插入到没有解释的错误中;通过语法测试

Php SQL插入到没有解释的错误中;通过语法测试,php,mysql,mysqli,Php,Mysql,Mysqli,我创建了一个模式表单来捕获完整的联系信息并上传到数据库。工作得很好。使用完全相同的代码创建用于登录的第二个模式窗口。消除了多余的代码。继续获取完全相同的错误消息: 错误:在team_成员(id、用户名、密码)中插入值(NULL、“hfuller”、“davidson”) 我已经创建了一个测试文件,它可以连接。我根本无法更新数据库。我甚至尝试复制和粘贴讲师的示例文件。该文件也无法更新数据库 这是我的代码(我更改了数据库引用;其他所有内容都与我的数据库匹配): 查看此查询时: INSERT INTO

我创建了一个模式表单来捕获完整的联系信息并上传到数据库。工作得很好。使用完全相同的代码创建用于登录的第二个模式窗口。消除了多余的代码。继续获取完全相同的错误消息:

错误:在team_成员(id、用户名、密码)中插入值(NULL、“hfuller”、“davidson”)

我已经创建了一个测试文件,它可以连接。我根本无法更新数据库。我甚至尝试复制和粘贴讲师的示例文件。该文件也无法更新数据库

这是我的代码(我更改了数据库引用;其他所有内容都与我的数据库匹配):

查看此查询时:

INSERT INTO team_members (id, username, password)
                VALUES (NULL, '$username', '$password')
如果
id
是用来识别记录的,那么
NULL
就不能很好地识别记录。如果所有标识符都为空,如何识别任何给定记录?另外,如果它是主键,那么它很可能是
notnull
,并且对于任何给定的行都需要一个唯一的值

我猜,
id
是一个自动递增的列,或者以其他方式在数据库中自动生成其值。如果是这种情况,请在查询中完全忽略它:

INSERT INTO team_members (username, password)
                VALUES ('$username', '$password')
基本上,如果数据库要自己创建一个值,就不要试图提供一个值。数据库将优先考虑您提供的数据库,而不是任何创建数据库的尝试



作为补充说明,您可能希望研究如何使用准备好的语句和查询参数。清理输入是一件好事,但它仍然只是掩盖了潜在的问题。也就是说,您将用户输入创建为代码而不是值。使用查询参数将输入视为一个值,而不尝试执行它。

为什么要在ID中插入null?我想你不想让这个id出现,因为它可能是自动递增的?错误日志是什么?为什么每次都要在insert查询id参数中传递
NULL
?db表模式是什么?我希望我的列是自动递增的,而不是空的。在上面的代码中,id的处理方式与提供给我的模板完全相同。它在数据库中设置为自动递增。我已按建议将其删除;它没有解决最初的问题。它在我编写的第一页中也起作用(这是我的第二页)。据我所知,“NULL”表示没有从表单中输入任何内容。以下是数据库信息:数据库名称:ictus;表格名称:团队成员;列名称:ID、用户名、密码。ID设置为自动递增的整数;用户名和密码都设置为varchar,不能为null。我已删除id和null引用。它没有解决我更新数据库的问题。@C.Fuller:它以什么方式失败?调试时,具体在哪里失败?发生这种情况时,运行时值是什么?发生了什么错误?首先,我创建了一个连接文件和一个测试文件。这确认了我可以连接到数据库并查看用PHP插入的记录。然后,我尝试使用MAMP服务器完成表单。输入要更新到数据库的用户名和密码。我没有提醒它已成功,而是得到了与我的初始问题完全相同的错误消息:错误:在团队成员(id、用户名、密码)中插入值(NULL、“hfuller”、“davidson”)。在这个特定的例子中,我尝试添加hfuller作为用户名,添加davidson作为密码。它不会更新。错误消息没有引用行号或任何内容。我用第三方语法检查器检查了我的PHP。它顺利通过了。我已经用括号对它进行了编码。@C.Fuller:当您尝试手动执行相同的SQL时会发生什么?
INSERT INTO team_members (username, password)
                VALUES ('$username', '$password')