我是 PHP 和 SQL 新手。我只想在创建用户团队后注册一个用户。 我用过的表 -
团队
idTeam int(11) PK + AI
teamName varchar(25)
用户
idUser int(11) PK + AI
name varchar(30)
username varchar(30)
password varchar(30)
team int(11) FK
我使用了以下代码-
<?php
session_start();
include('conn.php');
$name=$_POST['name'];
$team=$_POST['team'];
$username=$_POST['username'];
$password=$_POST['password'];
$qry="SELECT * FROM team WHERE idTeam='$team";
if(mysqli_query($con,$qry)){
mysqli_query("INSERT INTO user(name, team, username, password)VALUES('$name', '$team', '$username', '$password')");
header("location: add_user.php?remarks=success");
mysqli_close($con);
}
else
mysqli_error($con);
?>
我曾经遇到错误 - Mysql 错误 1452 - 无法添加或更新子行:外键约束失败Mysql 错误 1452 - 无法添加或更新子行:外键约束失败
示例 - 我已预先输入团队表的内容-
idTeam - teamName
1 Arsenal
2 Chelsea
3 Liverpool
现在,如果我想添加一个用户,那么我可以通过输入用户表来添加他-
idUser team name username password
1 2 abc root pass
所以在这里我无法弄清楚我应该在 PHP 代码中使用什么查询?
最佳答案
第一个 sql 查询中 idTeam='$team 附近有一个单引号。 idTeam 是整数类型。所以它不需要在单引号内。确保您正在传递团队表中存在的 $team 变量的值。尝试以下代码。
$name=$_POST['name'];
$team=$_POST['team'];
$username=$_POST['username'];
$password=$_POST['password'];
$qry="SELECT * FROM team WHERE idTeam=$team";
$result = mysqli_query($qry);
$num_rows = mysqli_num_rows($result);
if($num_rows > 0){
mysqli_query("INSERT INTO user(name, team, username, password)VALUES('$name', $team, '$username', '$password')");
}else{
echo "Team is not valid!!!";
}
mysqli_close($con);
header("location: add_user.php?remarks=success");
关于php - 在php中使用外键在表中插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33477661/