插入用户ID和字段

时间:2016-09-24 20:56:29

标签: php mysql sql-server database post

我有表请求和用户,用户有id自动增量,现在工作正常我创建了与用户ID的关系,以请求列user_id(在请求中命名)

我的代码我有。

$(SRCROOT)

当我尝试插入没有用户ID时,它工作正常,但我需要它插入用户ID以及其他值。我收到以下错误。

  

错误:无法执行INSERT INTO请求(fname,lname,amount,&gt; cedula,user_id)VALUES(&#39;&#39;,&#39;&#39;,&#39; &#39;,&#39;&#39;,&#39;&#39;)。无法添加或更新子行:&gt;外键约束失败( <?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,CONSTRAINT request&gt; FOREIGN KEY(loan_requtes)REFERENCES {{1} }(user_id))

1 个答案:

答案 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';
    }....
}