在mysql db中只插入一次。

时间:2013-07-15 13:19:21

标签: php html mysql database

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

insert.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>

我似乎无法解决问题。

2 个答案:

答案 0 :(得分:0)

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

如果使用下面的一个,则可以跟踪mysql错误。

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

答案 1 :(得分:0)

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

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