首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中插入外键插入表中的值

在php中插入外键插入表中的值
EN

Stack Overflow用户
提问于 2015-11-02 12:32:38
回答 3查看 31.1K关注 0票数 0

我对PHP和SQL很陌生。我只是想在创建了一个用户团队之后注册一个用户。我用过的桌子-

team

代码语言:javascript
复制
idTeam int(11) PK + AI
teamName varchar(25)

用户

代码语言:javascript
复制
idUser int(11) PK + AI
name varchar(30)
username varchar(30)
password varchar(30)
team int(11) FK

我用了以下代码-

代码语言:javascript
复制
<?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不能添加或更新子行:外键约束failsMysql错误1452不能添加或更新子行:外键约束失败

示例-我已经预先输入了team表的内容-

代码语言:javascript
复制
idTeam - teamName
  1      Arsenal
  2      Chelsea
  3      Liverpool

现在,如果我想添加一个用户,那么我将通过输入用户表来添加他-

代码语言:javascript
复制
idUser   team   name   username  password
  1        2    abc    root      pass

因此,在这里,我无法确定我应该在PHP代码中使用什么查询?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-02 12:49:23

在idTeam='$team附近的第一个sql查询中有一个单引号。idTeam是整数类型。所以它不需要在单引号之内。确保您正在传递team表中存在的$team变量的值。试试下面的代码。

代码语言:javascript
复制
$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"); 
票数 1
EN

Stack Overflow用户

发布于 2015-11-02 12:36:02

需要在team表中存在对应于传递给$team的值的记录

票数 0
EN

Stack Overflow用户

发布于 2015-11-02 12:36:41

外键关系包括保存中心数据值的父表和指向其父表的相同值的子表。外键子句在子表中指定。

如果父表中没有匹配的候选键值,则它将拒绝尝试在子表中创建外键值的任何插入或更新操作。

https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33477661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档