我正在创建一个网站,并且在将表单中的数据插入到数据库中(使用phpMyAdmin)时遇到错误。
它只是出现了自定义错误“错误”,“抱歉,您的注册失败。请返回重试。'

我看过许多其他相同问题的问题,但是找不到与我的问题相对应的答案。



<?php include "base.php"; ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<div id="main">
 <?php

if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Email']))
{
    $PlanSize = mysql_real_escape_string($_POST['PlanSize']);
    $DatePaid = mysql_real_escape_string($_POST['DatePaid']);
    $AmountPaid = mysql_real_escape_string($_POST['AmountPaid']);
    $MonthUsage = mysql_real_escape_string($_POST['MonthUsage']);

     	// $currentUser = mysql_query('SELECT * FROM User WHERE Email = "'. mysql_real_escape_string($_SESSION['Email']) . '"') or trigger_error(mysql_error());

     	$currentUser = ($_SESSION['Email']);
        $registerquery = mysql_query("INSERT INTO Plan (PlanSize, DatePaid, AmountPaid, MonthUsage, PlanUserID) VALUES('".$PlanSize."','".$DatePaid."','".$AmountPaid."', '".$MonthUsage."','".$currentUser."')");
        if($registerquery)
        {
            echo "<h1>Success</h1>";
            echo "<p>Your account was successfully created. Please <a href=\"index.php\">click here to login</a>.</p>";
        }
        else
        {
            echo "<h1>Error</h1>";
            echo "<p>Sorry, your registration failed. Please go back and try again.</p>";
        }
     }

    ?>
    <form method="post" action="Plans.php">
	<table class="bill">
	<input type="hidden" name="data" value="true" />
    <fieldset>
    	<p>
    	<select name="PlanSize" id="PlanSize" placeholder="Plan Size"/>
			<option value="Small">Small</option>
			<option value="Medium">Medium</option>
			<option value="Large">Large</option>
			<option value="Extra Large">Extra Large</option>
		</select><p>

    	<input type="text" name="DatePaid" id="DatePaid" placeholder="Date Paid (YYYY-MM-DD)"/><br />
        <input type="text" name="AmountPaid" id="AmountPaid" placeholder="Amount Paid"/><br />
      	<input type="text" name="MonthUsage" id="MonthUsage" placeholder="Data Used"/><br />
        <input type="submit" name="Submit" id="Submit" value="Submit" />
    </fieldset>
	</table>
    </form>

</center>

</div>
</body></html>





注意:我的base.php文档用于连接数据库,并且功能齐全。我已经使用base.php实现了其他数据库数据插入,因此我知道这不是问题的根源。

非常感谢您的任何帮助

最佳答案

试试看:

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


此外,您确定要在各自的列中插入正确的values吗? $currentUser真的应该进入PlanUserID列吗?


  在讨论后发表评论:


由于您启用了FK约束,它应该可以工作,但让我们检查一下几件事:


父表和子表列应具有相同的数据类型。
确保子表的列中没有任何值
在父表的列中不存在。
两个表应具有相同的排序规则。
您的两个表都应为InnoDB。


您可以这样做:

SHOW TABLE STATUS WHERE Name =  'table1';
ALTER TABLE table1 ENGINE=InnoDB;



  如果一切失败,您可以随时备份父母和子女
  表,然后是truncate子表,并尝试建立关系
  再次。


您可以随时通过此处提供的类似问题进行更多研究:MySQL - Cannot add or update a child row: a foreign key constraint fails

10-08 08:11
查看更多