2013-05-16 57 views
0

我正在處理Uni任務,並且無法使用表單將記錄插入到MySQL數據庫。我的設置如下。 我可以查看數據庫中的條目,沒有任何問題。我是新來這個提前:(PHP FORM INSERT INTO不插入記錄

conninfo.php很抱歉

<?php 
$strServer="localhost"; 
$strDatabase="djdatabase"; // CHANGE TO YOUR DATABASE NAME HERE 
$strUser="root";  
$strPwd=""; // Leave blank for WAMPServer 

$strDB=mysql_connect($strServer,$strUser,$strPwd)or die("Could not open database"); 
$database=mysql_select_db("$strDatabase",$strDB); 

?> 

addnewdata.php

<?php include "conninfo.php"; 
$newdj=$_POST["dj"]; //pick up from form 
$newfn=$_POST["fn"]; 
$newem=$_POST["em"]; 
$newwe=$_POST["we"]; 
$newpi=$_POST["pi"]; 
$newev=$_POST["ev"]; 


$query = "INSERT INTO dj(DJName, FirstName, Email, Website, Picture, EventNumber)VALUES('$newdj', '$newfn', '$newem', '$newwe', '$newpi', '$newev)"; 

mysql_query($query); 


header("location:showall.php"); 
?> 

enternewdata.php

<?php include "conninfo.php";?> 
<html> 
<head> 


</head> 
<body> 

<form action="addnewdata.php" method="post"> 

DJ Name:<input type="text" name="dj"><br> 
FirstName: <input type="text" name="fn" /><br> 
Email: <input type="text" name="em" /><br> 
Website: <input type="text" name="we" /><br> 
Picture: <input type="text" name="pi" /><br> 
EventID: <input type="text" name="ev" /><br> 
<br><br> 

<button type="submit">Submit</button> 
</form> 

</body> 
</html> 

非常感謝您幫助:)

+0

您忘記在您的查詢「$ newev」報價,或刪除第一個報價,如果它在你的表中的整數 – Juck

+4

失蹤在最後一個值後關閉'''。我還建議交換uni,不教導80's過時的'mysql_ *'沒有任何SQL注入保護。 –

回答

0

有更好地利用SET命令插入數據

$query = "INSERT INTO dj SET 
      DJName=".$newdj.", 
      FirstName=".$newfn.", 
      Email=".$newem.", 
      Website=".$newwe.", 
      Picture=".$newpi.", 
      EventNumber=".$newev.""; 
$save = mysql_query($query); 
if($save){ 
    header("location:showall.php"); 
}else{ 
    die(mysql_error()); 
} 
0

你缺少一個報價'至極導致你無法看到,因爲你沒有做任何調試錯誤。反正你應該改變這種

'$newwe', '$newpi', '$newev')"; //a quote was missing after '$newv 

我建議你也調試查詢加入or die('INVALID QUERY: ' . mysql_error()); 這樣的代碼看起來像

mysql_query($query) or die('INVALID QUERY: ' . mysql_error()); 

既然你說這是一所大學的測試,我不知道你是否應該使用mysql_*函數(這是棄用),但我強烈推薦切換到mysqliPDO如果你可以出於安全原因。

+1

或至少[$ _POST]數據上的[mysql_real_escape_string](http://php.net/manual/en/function.mysql-real-escape-string.php)。儘管應該使用帶參數化查詢的PDO/mysqli。 –

0

$newev錯過您的查詢',給你一個錯誤

$query = "INSERT INTO dj(DJName, FirstName, Email, Website, Picture, EventNumber)VALUES('$newdj', '$newfn', '$newem', '$newwe', '$newpi', '$newev)";