2012-04-11 44 views
0

我已成功使用用戶帳戶登錄,現在我想插入記錄。以下是插入記錄未成功的代碼。從PHP插入語句到MS Access的錯誤

<?php 
session_start(); 
echo "Welcome: ". $_SESSION['role']; 
?> 
<?php 
error_reporting(0); 
if (!$_POST['submit']) 
{ 
? 
<html> 
<body> 
<br><br> 
<fieldset > 
Add a new user 
<br> 
<br> 
<label for='username'>Username: &nbsp;</label> 
<input type='text' name='username' id='username'/> 
<label for='password'>Password:&nbsp;</label> 
<input type='password' name='password' id='password' maxlength="50" /> 
<form action="<?=$_SERVER['PHP_SELF']?>" method="post"> 
Role: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<br> 
<select name="role"> 
<option value="" selected="selected"></option> 
<option VALUE="Administrator"> Administrator</option> 
<option VALUE="Secretary"> Secretary</option> 
<option VALUE="Employee"> Employee</option> 
</select> 
<input type='submit' name='Submit' value='Submit' /> 
</form> 
</fieldset> 
<table width=100%> 
</html> 
</body> 
<?php 
} 
else 
{ 
$conn=odbc_connect("employee","","") or die (odbc_errormsg()); 
if (!$conn) 
{ 
exit 
("Connection Failed: " . $conn); 
} 
$query = "INSERT INTO empTable (empID, password, Role, Days left in MC, Days left in leave) VALUES" . 
"('$_POST[username]', '$_POST[password]', '$_POST[role]', 14, 14)"; 
$result=odbc_exec($conn,$query) or die ("result error ".odbc_error().'-'.odbc_errormsg()); 
odbc_fetch_row($result); 
odbc_close($conn); 
} 

點擊提交按鈕,當我刷新我的數據庫時,什麼都沒有出來。爲什麼?非常感謝

回答

0

訪問不喜歡列名與空白。你必須用[ ]來掩蓋它們。

更改INSERT這樣的查詢:

$query = "INSERT INTO empTable (empID, password, Role, [Days left in MC], [Days left in leave]) VALUES ..." 
+0

嗨,施佩希特,謝謝。儘管添加了括號,insert語句仍然不起作用。 – Newbie 2012-04-11 05:14:12

+0

@Newbie:嘗試在構建INSERT語句後輸出'$ query'變量的內容。這個陳述看起來有效嗎?在Access中直接執行它(無PHP)時它是否工作?你能向我們展示完整的陳述嗎?我想看看它。 – 2012-04-11 06:42:27

+1

你將不得不使用括號密碼 - 「[密碼]」,或者更好的是,不使用它,它是一個保留字http://support.microsoft.com/kb/248738。刪除空格也好多了。 – Fionnuala 2012-04-11 07:46:33