2013-02-07 219 views
0

我有一個頁面,我可以通過一個窗體和MySQL的PHP​​更新。我更新了db呼叫從require "master.db.php";require $_SERVER['DOCUMENT_ROOT'].'/include/master.db.php';更新MySql數據庫

當我處理表單更新但頁面重新加載更新不存在時,我收到「成功更新」消息。沒有錯誤被拋出,所以它不清楚爲什麼數據庫沒有進行更新。使用phpMyAdmin檢查MySql數據庫,並能夠直接更新數據庫沒有麻煩?

由於這個問題只會影響'更新'和'刪除',所以我處於完全喪失狀態。我有一個正確工作的「添加條目」表單,其數據庫調用代碼與其他代碼相同。我已經嘗試回滾到舊的代碼,但問題仍然存在。嘗試重新啓動瀏覽器並清除現金。有任何建議嗎?

<?php 
// connect to datebase 
require $_SERVER['DOCUMENT_ROOT'].'/include/master.db.php'; 
// real escape all strings 
$season_num = mysql_real_escape_string($_POST['season_num']); 
$eps_num = mysql_real_escape_string($_POST['eps_num']); 
$temp_eps_num = mysql_real_escape_string($_POST['temp_eps_num']); 
$title = mysql_real_escape_string($_POST['title']); 
$inspired = mysql_real_escape_string($_POST['inspired']); 
$descrip = mysql_real_escape_string($_POST['descrip']); 

// update data in mysql database 
$sql="UPDATE season SET season_num='$season_num', eps_num='$eps_num', temp_eps_num='$temp_eps_num', title='$title', inspired='$inspired', descrip='$descrip' WHERE ID='$id'"; 
$result=mysql_query($sql); 

// if successfully updated. 
if($result){ 
echo "Successful"; 
echo "<BR>"; 
echo "<a href='example.html'>View result</a>"; 
touch('../example.html'); 
clearstatcache(); 
} 

else { 
echo "Whoops: " . mysql_error(); ; 
} 
mysql_close(); 
?> 
+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit

+0

如果更改在數據庫中提交,但您的瀏覽器未顯示它們,則它是要提取數據的代碼或瀏覽器正在緩存頁面的代碼。 – Kermit

+0

這就是問題,分貝沒有得到改變。當我查看phpmyadmin中的db時,我沒有看到我的更新,但沒有發現任何錯誤和「成功更新」的聲明。 我試圖添加 //如果成功更新。 if($ result){ echo「Successful」; echo「
」; 回聲「更新:」。 $結果。 「
」; echo「View result」; touch('../ episodelist.html'); clearstatcache(); } 看到什麼被傳遞到服務器,它所吐出的是「更新:」 –

回答

0

添加$id = mysql_real_escape_string($_POST['id']);解決了我的問題。謝謝njk