Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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_Sql_Database - Fatal编程技术网

Php sql命令插入不工作

Php sql命令插入不工作,php,mysql,sql,database,Php,Mysql,Sql,Database,我正在创建一个网站,但在将表单中的数据插入数据库(使用phpMyAdmin)时遇到错误。 它只是出现了自定义错误“error”,“对不起,您的注册失败。”。请回去再试一次 我看了很多其他问题,但我找不到与我的问题相对应的答案 像这样试试 $registerquery = mysql_query("INSERT INTO `Plan` (`PlanSize`, `DatePaid`, `AmountPaid`, `MonthUsage`, `PlanUserID`) VALUES('$Plan

我正在创建一个网站,但在将表单中的数据插入数据库(使用phpMyAdmin)时遇到错误。 它只是出现了自定义错误“error”,“对不起,您的注册失败。”。请回去再试一次

我看了很多其他问题,但我找不到与我的问题相对应的答案


像这样试试

$registerquery = mysql_query("INSERT INTO `Plan` (`PlanSize`, `DatePaid`, `AmountPaid`, `MonthUsage`, `PlanUserID`) VALUES('$PlanSize','$DatePaid','$AmountPaid', '$MonthUsage','$currentUser')");
试一试:

$registerquery = mysql_query("INSERT INTO `Plan` (`PlanSize`, `DatePaid`, `AmountPaid`, `MonthUsage`, `PlanUserID`) 
 VALUES('$PlanSize', '$DatePaid', '$AmountPaid', '$MonthUsage','$currentUser')");
此外,您确定要将正确的
值插入到它们各自的列中吗?
$currentUser
真的应该进入
PlanUserID
列吗

在评论中讨论之后:

既然您启用了
FK
约束,那么它应该可以工作,但是让我们检查一些事情:

  • 父表列和子表列应具有相同的数据类型
  • 确保在子表的列中没有任何 在父表的列中不存在
  • 两个表应该具有相同的排序规则
  • 两个表都应该是InnoDB
您可以通过以下方式进行:

SHOW TABLE STATUS WHERE Name =  'table1';
ALTER TABLE table1 ENGINE=InnoDB;
如果一切都失败了,你可以随时备份你的父母和孩子 表,然后截断子表并尝试建立关系 再说一遍


您可以在此处查看更多类似问题:

看起来您没有检查$\u POST数组中是否存在“PlanSize”和其他问题。 考虑到您可以只通过身份验证用户重新加载页面而不通过POST方法发送数据。所以您进入了第一个条件,但诸如“PlanSize”和其他索引不会在POST数组中创建。 事先检查isset:


$planSize=isset($\u POST['planSize'])$_POST['PlanSize']:空

不要使用-主要是因为SQL注入,尽管这也可能有助于错误处理。您想知道obselete代码失败的原因,然后查看:@ficuscr是正确的,但如果您坚持使用它(不推荐),则追加
或死亡(mysql_error())
到您的
mysql\u query()
以获得更准确的错误无法添加或更新子行:外键约束失败(
hb00294
bill
,约束
bill\u ibfk\u 1
外键(
PlanUserID
)引用
User
UserID
)-添加或消亡!谢谢你给我的提示,否则就死定了。不确定如何处理此问题。@如果外键定义为
非空
,则必须在
插入
查询中提供它。尝试在db表中进行更改,如删除时的
更新时的限制级联时的
。即使我将其指定为自动增量,我也必须提供它?另外,如何使表类似于删除限制更新级联?我是否更改为创建表(BillID INT在删除时不为NULL限制更新级联唯一自动增量,现在收到以下错误:注意:未定义索引:第102行/Applications/XAMPP/xamppfiles/htdocs/plans.php中的PlanSize通知:未定义索引:第103行/Applications/XAMPP/xamppfiles/htdocs/plans.php通知:未定义索引:AmountP第104行的/Applications/XAMPP/xamppfiles/htdocs/plans.php中的aid注意:第105行的/Applications/XAMPP/xamppfiles/htdocs/plans.php中的未定义索引:MonthUsage以及其他两个错误。我在$PlanSize=mysql\u real\u escape\u字符串($\u POST['PlanSize'])之前添加了这个命令,但不幸的是仍然收到了相同的错误。