0

我有以下代码可以将数据添加到我的数据库中。似乎一切正常,但它只向数据库添加一次,之后它告诉我数据已正确保存到数据库中,但是当您想检查它是否已添加时,我可以看到它没有被添加。

插入.php

<?php   
            session_start();
            $server = "";
            $user_name = "";
            $password = "";
            $database = "";
            $id = $_SESSION['id'];
            $res_name = $_SESSION['username'];

            $db_handle = mysql_connect($server, $user_name, $password);
            $db_found = mysql_select_db($database, $db_handle);
            if ($db_found) {
                $SQL = "INSERT INTO [db_table] (ID,name,category,dish_name,explanation,ingredients,price) 
                VALUES ('$id','$res_name','$_POST[cat]','$_POST[dname]','$_POST[about]','$_POST[ing]','$_POST[num]')";
                $result = mysql_query($SQL);

                mysql_close($db_handle);

                print "Records added to the database";
                echo "<BR>";
                echo "<a href='newitem.php'>Back to main page</a>";

            }
            else {
                mysql_close($db_handle);
            }
          ?>

并以我的html形式:

<form class="form-inline" action="inser.php" method="post">
    <input type="text" id="dname" name="dname" class="input-medium" placeholder="Dish Name">
    <?php
    $server = "";
    $user_name = "";
    $password = "";
    $database = "";
    $id = $_SESSION['id'];
    $res_name = $_SESSION['username'];
    $_SESSION['id'] = $id;
    $db_handle = mysql_connect($server, $user_name, $password);
    $db_found = mysql_select_db($database, $db_handle);
    if ($db_found) {

        $SQL = "SELECT category from Category where Rest_ID = '".$id."'";           
        $result = mysql_query($SQL,$db_handle) or die(mysql_error());
        $i = 0;
        echo "<select id='cat' name='cat'> <option selected='selected'>Select</option>";
        while($row = mysql_fetch_array($result)){
            $i = $i + 1;
            echo "<option>".$i.". $row[category]</option>";
        }
        echo '</SELECT>';
    }
    else {
        mysql_close($db_handle);
    }
    //echo $id;
    ?>
    <input type="text" id="ing" name="ing" class="input-medium" placeholder="Ingredients">
    <input type="text" id="about" name="about" class="input-medium" placeholder="About this food">
    <input type="number" id="num" name="num" class="input-medium" onkeypress="return isNumberKey(event)" placeholder="Price">
    <button type="submit" class="btn btn-success">Add</button>
  </form>

我似乎无法弄清楚问题所在。

4

2 回答 2

0

我不禁注意到,在您的表单上,您的操作是inser而不是insert.

在您的数据库中,您确实设置id为自动递增,对吗?如果您正在使用$_SESSION['id'],它显然会尝试将数据插入到 id 等于会话 ID 的行中,这就是它只能插入一次的原因。

于 2013-07-17T01:10:41.390 回答
0

我相信“id”是表的主要字段,您尝试将相同的记录插入表中。所以它没有将记录插入到表中。如果要使用新值修改记录,请通过检查记录已存在等条件尝试更新查询。

如果您使用以下一项,则可以跟踪 mysql 错误。

mysql_query($sql) 或 die($sql . mysql_error());

于 2013-07-15T13:30:52.923 回答