我有这个代码
<?php
include 'dbconnect.php'; ?>
<head>
</head>
<body>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>">
<input type="text" name="product_name"/>
<input type="text" name="product_price" />
<select name="product_cat">
<?php
$results = $connect->query("SELECT * FROM categories ORDER BY cat_name");
while($row = $results->fetch_array()) {
extract($row);
echo "<option value='"."{$cat_name}"."'>"."{$cat_name}"."</option>";
}
$results->free();
?>
</select>
<input type="submit" name="submit" value="Submit">
</form>
<?php
if($_POST){
$sql = "INSERT INTO products (prd_name, prd_price, cat_id) VALUES(?,?,?)";
if($stmt = $connect->prepare($sql) )
{
$productname = $_POST['product_name'];
$productprice = $_POST['product_price'];
$productcat = $_POST['product_cat'];
$stmt->bind_param("sii", $productname, $productprice, $productcat);
if($stmt->execute())
{
echo "Created";
$stmt->close();
}else{
die("Unable to create category.");
}
}else{
die("Unable to prepare statement.");
}
$connect->close();
}
?>
</body>
</html>
这里的类别名称是从名为类别的表中调用的。您可以在下拉列表中看到代码。用户选择类别名称、填写产品名称和产品价格后,表单会将所有三个数据保存到名为产品的表中。
第三个表名为category_product,有两列prd_id 和cat_id(产品id 和类别id)。我需要将产品的 id 和类别与此表单一起记录到此表中。
简而言之,当仅回显名称时,如何从类别表中获取类别 id,以及如何知道产品最后保存的 id,然后将这两条记录插入到第二个(category_products)表中同一时间。
最佳答案
您可以获得insert_id从你的第一个语句到第二个语句中使用。这里有一些伪代码可以帮助您实现这一点
if($stmt->execute()) {
$record_id = $stmt->insert_id;
$sql = "INSERT table2(data, table1_id) VALUES($someval, $record_id)";
// Run the query here
}
关于php - 同时将数据保存到两个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25314332/