Php MYSQL错误#1452

Php MYSQL错误#1452,php,mysql,mysql-error-1452,Php,Mysql,Mysql Error 1452,请帮忙,我已经讨论了几个小时了,没有进一步的进展。我一直在研究这个问题,直到我脸色发青,但什么都不适合我!我正在尝试用PHP制作一个注册表。我有一个包含所有用户信息的用户表和一个包含用户名和密码的帐户表。users表中的主键是userid,这是account表中的外键。我试图将一个表单中的数据插入到两个表中,但一直受到外键约束。我的代码贴在下面,任何帮助都将不胜感激 如果用户ID在account表中定义为外键,则在插入帐户时应将其添加到insert查询中 Emma 一句忠告。请不要使用这种代码

请帮忙,我已经讨论了几个小时了,没有进一步的进展。我一直在研究这个问题,直到我脸色发青,但什么都不适合我!我正在尝试用PHP制作一个注册表。我有一个包含所有用户信息的用户表和一个包含用户名和密码的帐户表。users表中的主键是userid,这是account表中的外键。我试图将一个表单中的数据插入到两个表中,但一直受到外键约束。我的代码贴在下面,任何帮助都将不胜感激


如果用户ID在account表中定义为外键,则在插入帐户时应将其添加到insert查询中

Emma

一句忠告。请不要使用这种代码,因为它很容易被SQL注入。想象一下,当我输入以下名字时:

mark'); drop table users; --
执行的SQL语句将是

INSERT INTO users (`fname`,`lname`,`dob`,`contactno`,`email_address`) VALUES ('mark'); drop table users;
ObRef:

这将有效地删除用户表。但是,除非您的protect()函数能够处理此问题,否则最好使用绑定变量:

此外,您的电子邮件regex没有捕获所有可能的情况-请参阅此处以了解讨论:

PHP代码中的错误:使用$lname而不是lname


我会考虑使用一个框架来处理表单、插入、更新记录,如YI、Laravel、SyfFoy、ZEnter、CaKePHP等等。除非你的目标是学习如何处理低级别的处理< /P>,你的问题是与你的SQL语句和你的模式冲突。如果来自用户的(可能生成的)UserID是account中不可为空的字段,那么您需要将其包含在insert语句中,这意味着在insert给用户之后检索它。