2013-07-15 18 views
0

我有以下代碼將數據添加到我的數據庫。看起來正確的任何一切都工作正常,但它只添加一次數據庫,然後它告訴我,數據已被正確保存到數據庫,但是當你想檢查它,看看它是否已被添加,我可以看到它沒有被添加。僅在MySQL數據庫中插入一次。

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> 

我似乎無法弄清楚的問題。

+0

插入後'mysql_error()'說什麼?如果「ID」列設置爲唯一,插入相同的會話ID可能會失敗。另外,當你使用繁瑣的mysql_接口時,爲什麼沒有爲你的輸入變量進行轉義? – mario

回答

0

我相信'id'是表的主要字段,您嘗試將相同的記錄插入表中。所以它不會將記錄插入表格。如果您想用新值修改記錄,請通過檢查已存在的記錄等條件嘗試更新查詢。

如果你使用下面的一個,你可以跟蹤mysql錯誤。 ($ sql)或者死($ sql。mysql_error());

+0

是的,你是對的。但在我的數據庫中,我沒有將ID柱設置爲主鍵。 –

0

我不禁注意到,在你的表格上,你的動作是inser而不是insert

在你的數據庫中,你確實設置了id自動增量,對不對?如果您使用的是$_SESSION['id'],顯然會嘗試將數據插入ID等於會話ID的行中,這就是爲什麼它只能插入一次。