我有表请求和用户,用户有id自动增量,现在工作正常我创建了与用户ID的关系,以请求列user_id(在请求中命名)。
我的代码我有。
$(SRCROOT)
当我尝试插入没有用户ID时,它工作正常,但我需要它插入用户ID以及其他值。我收到以下错误。
错误:无法执行INSERT INTO请求(fname,lname,amount,> cedula,user_id)VALUES('','',' ','','')。无法添加或更新子行:>外键约束失败(
<?php require_once 'init.php'; session_start(); $_SESSION['user_id'] = $user->data()->id ; $link = mysqli_connect("localhost", "xxx", "xxxxx", "xxxxx"); if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); } // Escape user inputs for security $fname = mysqli_real_escape_string($link, $_POST['fname']); $lname = mysqli_real_escape_string($link, $_POST['lname']); $amount = mysqli_real_escape_string($link, $_POST['amount']); $cedula = mysqli_real_escape_string($link, $_POST['cedula']); $userid = mysqli_real_escape_string($link, $_POST['user_id']); // attempt insert query execution $sql = "INSERT INTO request (fname, lname, amount, cedula, user_id ) VALUES ('$_POST[fname]', '$_POST[lname]', '$_POST[amount]','$_POST[cedula]','$_POST[user_id]' )"; if(mysqli_query($link, $sql)){ echo "Records added successfully."; } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); } // close connection mysqli_close($link); ?>
。dbname
,CONSTRAINTrequest
&gt; FOREIGN KEY(loan_requtes
)REFERENCES {{1} }(user_id
))
答案 0 :(得分:0)
我认为你无法执行INSERT语句的原因是你的$ _POST ['user_id']可能为空。
我建议您执行以下操作:通过在代码中包含以下if子句来验证$ _POST ['']是否为空
if(!empty($fname) && !empty($lname) && ....)){
$sql = "INSERT INTO request () VALUES ('$fname', '$lname', ....)";
} else {
echo 'Some variables are empty';
}
如果脚本回显“某些变量为空”,那么您将知道某些$ _POST []未设置。
为了进一步调查那些$ _POST []中的哪一个没有被设置,你可以在else子句中包含一组if子句,以便通过包含这个来设置其中哪些没有设置:
else{
if(empty($fname)){
echo 'fname is empty';
}elseif($lname){
echo 'lname is empty';
}....
}