我正在创建一个网站,并且我在将表格中的数据插入我的数据库时遇到了错误(使用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>
&#13;
注意:我的base.php文档用于连接数据库并且功能齐全;我已经使用base.php实现了其他数据库数据插入,所以我知道它不是问题的根源。
非常感谢您的任何帮助
答案 0 :(得分:1)
放手一搏:
$registerquery = mysql_query("INSERT INTO `Plan` (`PlanSize`, `DatePaid`, `AmountPaid`, `MonthUsage`, `PlanUserID`)
VALUES('$PlanSize', '$DatePaid', '$AmountPaid', '$MonthUsage','$currentUser')");
此外,您确定要将正确的values
插入各自的列吗? $currentUser
是否真的想进入PlanUserID
列?
在评论中讨论后:
由于你有FK
约束启用,它应该可以工作,但让我们检查一下:
您可以通过以下方式实现:
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
答案 1 :(得分:1)
看起来你还没有检查是否存在&#39; PlanSize&#39;和$ _POST数组中的其他人。 考虑您只需为经过身份验证的用户重新加载页面,而无需通过post方法发送数据。所以你进入了你的第一个条件,但索引,如&#39; PlanSize&#39;和其他人不会在POST数组中创建。 事先检查isset:
$ planSize = isset($ _ POST [&#39; PlanSize&#39;])? $ _POST [&#39; PlanSize&#39;]:null;
答案 2 :(得分:0)
尝试这样
$registerquery = mysql_query("INSERT INTO `Plan` (`PlanSize`, `DatePaid`, `AmountPaid`, `MonthUsage`, `PlanUserID`) VALUES('$PlanSize','$DatePaid','$AmountPaid', '$MonthUsage','$currentUser')");