gpt4 book ai didi

php - 向2个mysql表插入数据不起作用

转载 作者:行者123 更新时间:2023-11-29 22:30:29 25 4
gpt4 key购买 nike

我正在尝试将数据插入 mysql 数据库。数据来自POST并且post数组看起来像这样 -

Array
(
[category_name] => main category
[subCategory] => Array
(
[0] => Subcategory 01
[1] => Subcategory 02
[2] => Subcategory 03
)

[category-submitted] => TRUE
)

我使用两张表,一张用于类别,另一张用于子类别。

这就是我使用 PHP 插入这些数据的方式:

// Insert the category into the database 
$insertQuery = "INSERT INTO category (category) VALUES (?)";

// Prepare the statement:
$insert_stmt = $mysqli->prepare($insertQuery);

// Bind the variables:
$insert_stmt->bind_param('s', $category);

// Execute the prepared query.
if ($insert_stmt->execute()) {
//echo 'category added';
$last_catid = $insert_stmt->insert_id;

if(!empty( $subcategories)) {

// loop over the array insert subcategory
foreach( $subcategories as $value ){
$insertsubcatQuery = "INSERT INTO subcategory (category_id, subcategory) VALUES (?, ?)";

// Prepare the statement:
$insert_sub_stmt = $mysqli->prepare($insertsubcatQuery);

// Bind the variables:
$insert_sub_stmt->bind_param('is', $last_catid, $value);

// Execute the prepared query.
if ($insert_sub_stmt->execute()) {
echo 'subcategory added';
}

}
}
}

更新:这就是数据到达$subcategories的方式:

$subCategory = $_POST['subCategory'];
$subcategories = array();
if (!empty( $subCategory ) && is_array( $subCategory )) {
foreach( $subCategory as $key => $value ) {
$subCategories[] = filter_var( $value, FILTER_SANITIZE_STRING );
}
}

但是使用此脚本将类别插入数据库,但不将子类别插入数据库。谁能告诉我这段代码有什么问题吗?

谢谢。

最佳答案

显然,问题是变量名称中的拼写错误。

定义subCategories变量:

$subcategories = array(); //Lower case c
if (!empty( $subCategory ) && is_array( $subCategory )) {
foreach( $subCategory as $key => $value ) {
$subCategories[] = filter_var( $value, FILTER_SANITIZE_STRING ); //Capital C
}
}

内插入代码:

if(!empty( $subcategories)) { //Lower case c

// loop over the array insert subcategory
foreach( $subcategories as $value ){ //Lower case c

代码建议:

您有 2 个循环,一个用于过滤和构建子类别数组,另一个循环遍历该数组。您可以将它们组合成一个数组。

语义建议:

关于您的数据库表,我建议您使用更合适的名称。例如,保存类别的表应该是复数,categories。字段category 应命名为namesubcategory 表也是如此。 (category_id 字段很好)。

关于php - 向2个mysql表插入数据不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29846837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com