将数据插入2个mysql表是行不通的

时间:2015-04-24 11:52:42

标签: php mysql

我正在尝试将数据插入mysql数据库。 数据来自<?php session_start(); if(isset($_SESSION['tstid'])) { $tstid = $_SESSION['tstid']; } include('references.php'); include('config.php'); $query = "select * from testquestions where testid='".$tstid."'"; $res = mysql_query($query); if(mysql_num_rows($res) > 0) { $z=array(); while($fetch = mysql_fetch_array($res)) { $z[] =$fetch['qid']; } echo implode(",", $z); } ?> ,后期数组看起来像这样 -

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

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

谢谢。

1 个答案:

答案 0 :(得分:0)

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

定义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
    }
}

insert代码中:

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字段很好)。