2013-04-10 65 views
-1

我不知道如何處理這個問題。我有一個MySQL數據庫,並使用PHP通過我的Web應用程序修改記錄等。經過相當多的調試,mySQL記錄似乎只是隨機不存儲/更新,我看不出爲什麼。mySQL記錄隨機不存儲到dbase

對於某些背景,網絡應用程序會做兩件事 - 更新用戶瀏覽器以顯示剛剛提交的文本,然後觸發php腳本將文本存儲到mySQL記錄中。更新,但是將記錄插入到dbase似乎在5個事件(大致)中失敗了2個。

對此有何看法?

function submit_wallpost($wallpost){ 
$userid = $_SESSION['SESS_MEMBER_ID']; 

include './mySQL_access.php'; 

mysql_connect("$host", "$user", "$pass")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

mysql_query("INSERT INTO wall (clusterID, userID, postContent) VALUES (111, '$userid', '$wallpost')"); 

mysql_close(); 
} 
+0

總體思路? – 2013-04-10 00:15:34

+0

我會猜測代碼有問題。我看不到它,所以這就是我所假設的原因。 – Jon 2013-04-10 00:16:25

+0

肯定 - 現在發佈代碼,我假設這是一個錯誤或與mySQL有關,我不知道。 – user1953875 2013-04-10 00:23:29

回答

1

該代碼看起來不錯除了您應該使用PDO或mysqli連接,因爲mysql_functions已被棄用。無論如何,一些調試可能會對您有所幫助。

$query = mysql_query("INSERT INTO wall (clusterID, userID, postContent) VALUES (111, '$userid', '$wallpost')"); 
if (!$query) die(mysql_error()); 

可以幫助你的事業。

+2

由此進一步說明,您可能會從將數據庫連接移出此特定功能中受益! – sark9012 2013-04-10 00:30:10

+0

@Luke這裏給出了很好的建議。你甚至可以考慮使用現有的數據庫類或經過嘗試和測試的東西。 – 2013-04-10 00:32:20

0

您的代碼似乎罰款。您應該最需要檢查錯誤發生的位置。

1.檢查從查詢中插入的值。通過定義第一個查詢來嘗試從執行中分隔查詢語句。這將大大地檢查打算使用echo提交的值,並且您還可以嘗試它運行在您的分貝sql

$sql="INSERT INTO wall (clusterID, userID, postContent) VALUES (111, '$userid', '$wallpost')" 

2.Try做檢查您的$sql語句執行失敗還是not.This想法將返回一個echo聲明。

if($result){ 
     echo 'Success'; 
    } 
    else{ 
    echo 'Failed'; 
} 

到這些,我們將有其中的代碼將停止,讓你能分享一些代碼查詢失敗