php mysql网站中外键的简单更新

php mysql网站中外键的简单更新,php,mysql,Php,Mysql,嗨,我无法更新有外键的表。在这个表中,我没有显示外键的主键,而是选择显示它们的名称:这是一个简单的图表: 这是我的外国餐桌: 尺寸表: sId sName 1 1x1 2 2x2 品牌表: bId bName 1 brand1 2 brand2 供应商表: sId sName 1 supp1 2 supp2 下面是使用join语句的仓库表: pId pName pSize pBrand pSupplier 1 prod1 1x1

嗨,我无法更新有外键的表。在这个表中,我没有显示外键的主键,而是选择显示它们的名称:这是一个简单的图表: 这是我的外国餐桌:

尺寸表:

sId  sName
1    1x1
2    2x2
品牌表:

bId  bName
1    brand1
2    brand2
供应商表:

sId  sName
1    supp1
2    supp2
下面是使用join语句的仓库表:

pId  pName  pSize pBrand  pSupplier
1    prod1  1x1   brand1  supp1
2    prod2  2x2   brand2  supp2
以下是我在php和mysql表单中的编辑:

########### EDIT PRODUCT
if(isset($_POST['editproduct'])){
$product_id=$_POST["product_code"];
$product_name=$_POST["product_name"];       
$size_name=$_POST["size_name"]; 
$brand_name=$_POST["brand_name"];       
$supplier_name=$_POST["supplier_name"];     
$sql = "UPDATE warehouse SET 
product_name='$product_name'
,size_id='$size_id'
,brand_id='$brand_id'
,supplier_id='$supplier_id'
WHERE 
product_code='$product_code'";
$result=mysql_query($sql,$connection) or die(mysql_error());
header("location: warehouse.php");
} ?>
奇怪的是,我第一次尝试编辑表时,它没有出错。但是第二次,它提示我外键约束的错误:(


我有一种感觉,因为我在仓库表中使用了join语句,这与我的更新查询冲突,因为我正在更新的是主键,我只显示它的名称。

您在SQL语句中引用变量$size\u id、$brand\u id、$supplier\u id,但从未在任何地方设置它们


虽然如果你说第一次编辑就可以了,我猜你可能没有发布所有的代码?

对于初学者来说,你的代码中有明显的SQL注入。很抱歉,我没有接受过SQL方面的正式教育。