在foregin键中自动设置值

t98cgbkg  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(228)

我创建了两个表 Table brandBrand_id(primary key),Brand_name 1 gucciTable Product ```
Product_id, Brand_id(foeign_key), Product_name
1 holand

两个表都是使用键链接的,我想在我更新brand表中的brand name之后,brand表中的主键id会自动插入到产品中 `brand_id` . 无论何时输入产品名称,外键品牌标识是否与主键相同 `brand_id` , 
我还尝试为主键id添加与外键id匹配的代码,但它不起作用。
50few1ms

50few1ms1#

我想你是想用这个牌子 $_SESSION['brand_name'] . 你可以用它来获得 brand_id .

<?php
session_start();
$_SESSION['message']=''; 
$mysqli=new MySQLi('127.0.0.1','root','','demo');
if(isset($_POST["login"])) {
    $sql ="INSERT INTO product(product_name,brand_id)
           SELECT ?, brand_id
           FROM brand
           WHERE brand_name = ?";
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param("ss", $_POST['product_name'], $_SESSION['brand_name']);
    if($stmt->execute()) {
        $_SESSION['message'] =  "Registration successful!
                                                  Added  to the database!";
        header("location:multiple_table.php");
    }
}
else {
    $_SESSION['message'] = "User could not be added to the database!";      
}
?>

如果将brand id放入另一个会话变量中,会更容易,比如 $_SESSION['brand_id'] . 那么就不需要进行查询来获取id。
您还应该学会使用准备好的语句,而不是替换变量。甚至使用 $mysqli->real_escape_string() 在sql注入中不是那么安全。

相关问题