2015-09-27 117 views
1

我是剛剛研究過的PHP中的新手。我提交了一些表單,它會在MySQL表中插入新數據。我似乎無法弄清楚這個問題。這裏是我的代碼:使用mysql插入數據

<form method="post"> 
     <table border='2' cellpadding=4 cellspacing=1 width=50% bgcolor=white align=center > 
     <br> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Master No.:</td> 
       <td class="td-center"><input type="text" name="master_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Alacarte No.:</td> 
       <td class="td-center"><input type="text" name="alacarte_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Dessert No.:</td> 
       <td class="td-center"><input type="text" name="dessert_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Pasta No.:</td> 
       <td class="td-center"><input type="text" name="pasta_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Rice No.:</td> 
       <td class="td-center"><input type="text" name="rice_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Wine No.:</td> 
       <td class="td-center"><input type="text" name="wine_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Member ID:</td> 
       <td class="td-center"><input type="text" name="member_id" /></td> 
      </tr> 

      <tr> 
       <td>&nbsp;</td> 
       <td class="td-center"> 
        <input type="submit" name="submit" value="Add"/> 
        <input type="Reset"/> 
        <a href="member-profile.php"> 
         <input type="button" name="home" value="home"/> 
        </a><br> 
       </td> 
      </tr> 
     </table> 
     <?php 

      if (isset($_POST['submit'])) { 
       $conn = mysql_connect('localhost', 'root', ''); 
       if (!$conn) 
       { 
       die('Could not connect: ' . mysql_error()); 
       } 
       mysql_select_db("thesis_sofitel", $conn); 

       $master_no=$_POST['master_no'] ; 
       $alacarte_no= $_POST['alacarte_no'] ; 
       $dessert_no= $_POST['dessert_no'] ; 
       $pasta_no= $_POST['pasta_no'] ; 
       $rice_no= $_POST['rice_no'] ; 
       $wine_no= $_POST['wine_no'] ; 
       $member_id= $_POST['member_id'] ; 

       mysql_query("INSERT INTO `master_list`(master_no,alacarte_no,dessert_no,pasta_no,rice_no,wine_no,member_id) 
          VALUES ('$master_no','$alacarte_no','$dessert_no','$pasta_no','$rice_no','$wine_no','$member_id')"); 

       $message = "I was here!!!"; 
       echo "<script type='text/javascript'>alert('$message');</script>"; 

      }   
     ?> 
    </form> 
+0

既然你剛開始,那麼最好從'mysqli'或'PDO'開始,並停止使用_deprecated_ mysql函數。啓用錯誤報告來知道你在哪裏搞亂了。 – user5173426

+1

@HawasKaPujaari說了什麼,請更新您的問題,看看您發現的任何錯誤 – e4c5

+0

關閉您的''標記,並在之後,然後將PHP移到HTML之上。 – user5173426

回答

2

修正了一些bug在你的代碼,並將其改爲mysqli。這應該現在工作:

1)提供action屬性在您的形式,在您的情況action = ""

2)echo知道它們是否真的被提取的值。儘管如此,這仍然傾向於SQL注入。閱讀更多here瞭解爲什麼/準備好的陳述如何提供幫助。

<?php 
    if (isset($_POST['add-submit'])) { 
    $con=mysqli_connect("localhost","root","your_pass_here","thesis_sofitel"); 

    if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

     echo  $master_no=$_POST['master_no'] ; 
     echo  $alacarte_no= $_POST['alacarte_no'] ; 
     echo  $dessert_no= $_POST['dessert_no'] ; 
     echo  $pasta_no= $_POST['pasta_no'] ; 
     echo  $rice_no= $_POST['rice_no'] ; 
     echo  $wine_no= $_POST['wine_no'] ; 
     echo  $member_id= $_POST['member_id'] ; 

$success = mysqli_query($con,"INSERT INTO `master_list`(master_no,alacarte_no,dessert_no,pasta_no,rice_no,wine_no,member_id) 
          VALUES ('$master_no','$alacarte_no','$dessert_no','$pasta_no','$rice_no','$wine_no','$member_id')"); 

          if($success){ 
       $message = "I was here!!!"; 
       echo "<script type='text/javascript'>alert('$message');</script>"; 
          } 
          else 
           echo "Query Failed."; 

mysqli_close($con); 

      }   
     ?> 

HTML:

<form method="post" action = ""> 
     <table border='2' cellpadding=4 cellspacing=1 width=50% bgcolor=white align=center > 
     <br> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Master No.:</td> 
       <td class="td-center"><input type="text" name="master_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Alacarte No.:</td> 
       <td class="td-center"><input type="text" name="alacarte_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Dessert No.:</td> 
       <td class="td-center"><input type="text" name="dessert_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Pasta No.:</td> 
       <td class="td-center"><input type="text" name="pasta_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Rice No.:</td> 
       <td class="td-center"><input type="text" name="rice_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Wine No.:</td> 
       <td class="td-center"><input type="text" name="wine_no" /></td> 
      </tr> 
      <tr> 
       <td><font face=rockwell font size=5 font color=black>Member ID:</td> 
       <td class="td-center"><input type="text" name="member_id" /></td> 
      </tr> 

      <tr> 
       <td>&nbsp;</td> 
       <td class="td-center"> 
        <input type="submit" name="add-submit" value="Add"/> 
        <input type="Reset"/> 
        <a href="member-profile.php"> 
         <input type="button" name="home" value="home"/> 
        </a><br> 
       </td> 
      </tr> 
     </table> 

    </form> 

編輯:

上面的代碼工作,並澄清了,我測試了它自己。以下是附圖。

The main page

After submitting the form

The results in the database

第二個編輯:

要顯示OP,如果他改變了列INT類型,它仍然能工作:

enter image description here

+0

感謝@HawasKaPujaari,但是當我點擊保存時,沒有任何反應,在inspect元素上沒有錯誤,它仍然不會在mySQL上插入。 – user3545006

+0

我忘了將名稱更改爲「添加提交」。現在出現錯誤:「78788787878787查詢失敗。」 78788等是數字輸入。 – user3545006

+0

@ user3545006這意味着_query failed_'echo'查詢,你看到了什麼?將列名與數據庫中的列名匹配。 (請記住它們區分大小寫) – user5173426