2013-02-08 114 views
1

我有一個簡單的插入頁面,似乎經歷了任何錯誤,但沒有顯示在數據庫中。我已經閱讀了30個以上的差異文章,並且無法弄清楚什麼是錯誤的。我知道dbcon.php的工作原理是顯示頁面將所有結果都解決了。php mysql插入不工作db連接正在工作

<?php 
ob_start(); 
include('dbcon.php'); 

if (isset($_POST['submit'])){ 

$Ph1=preg_replace('/[^0-9]/', '', $_POST["ph1"]); 
$Ph2=preg_replace('/[^0-9]/', '', $_POST["ph2"]); 
$Name=mysql_real_escape_string($_POST['name']); 
$Email=mysql_real_escape_string($_POST['email']); 
$Group=$_POST['group']; 

mysql_query("insert into reps (ph1,ph2,name,email,group) 
     values("$Ph1","$Ph2","$Name","$Email","$Group")"); 
     header('location:index.php'); 
} 
ob_flush(); 
?> 
+0

你沒有錯誤,因爲你不檢查錯誤,如果MySQL在哪兒會告訴你,我完全沒有想到的保留關鍵字列表的問題 – 2013-02-08 02:53:16

回答

2

GROUP是一個保留的關鍵字。它必須與反引號括起來,

insert into reps (ph1,ph2,name,email,`group`) 

的另一個問題是所用的`各地值雙引號。

mysql_query("INSERT INTO reps (ph1,ph2,name,email,`group`) VALUES ('$Ph1','$Ph2','$Name','$Email','$Group')"); 

作爲旁註,查詢是用SQL Injection脆弱,如果變量的值(小號)從外部來了。請看下面的文章,瞭解如何防止它。通過使用PreparedStatements你可以擺脫使用單引號圍繞值。

+0

。謝謝。我並不擔心SQL注入,因爲它將位於受密碼保護的目錄中,只能由一個或兩個人使用,但感謝您參考鏈接。 – user2052960

+0

不客氣':D' –

+0

是的,我是新的,感謝您在正確的程序建議我。 – user2052960