gpt4 book ai didi

php - sql 命令 INSERT INTO 不起作用

转载 作者:行者123 更新时间:2023-11-29 07:32:25 25 4
gpt4 key购买 nike

我正在创建一个网站,但在将表单中的数据插入数据库(使用 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')");

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

After the discussion in the comments:

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

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

您可以通过以下方式执行此操作:

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

And if all fails you can always take backup of your parent and child table first, then truncate child table and try to make a relation again.

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

关于php - sql 命令 INSERT INTO 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com