2013-03-15 71 views
0

我需要這個代碼幫助:如何使用變量更新mysql?

if (isset($_POST['aboutme'])) { 
$aboutme = $_POST['aboutme']; 
$aboutme = mysql_real_escape_string($aboutme); 
mysql_query("UPDATE `users` SET `about_me`='" . $aboutme . "' WHERE `username`='" . $usn . "' LIMIT 1") or die(mysql_error()); 
} 

我不知道爲什麼它不工作,但它不會使它的適當的細胞去改變它。這裏是文本區域:

<textarea id="aboutme" name="aboutme" rows="4" cols="50"><?php echo "$abme"; ?></textarea> 

我不知道這裏會發生什麼,因爲沒有錯誤出來。

http://gyazo.com/f36f04c014bb229c1be27cc7a9e5072f.png?1363328064

+0

您是否嘗試過回顯$ aboutme甚至是整個查詢以確定您擁有的是您期望的? – SomeSillyName 2013-03-15 06:10:51

+0

除了你的問題,你正在做一些錯誤,如使用mysql_real_escape_string和不驗證sql查詢。反正可以添加你的表格架構與你的問題 – ScoRpion 2013-03-15 06:12:21

+0

是你的錯誤報告..?至於我可以看到沒有什麼是錯的代碼.... – alwaysLearn 2013-03-15 06:13:13

回答

1

我強烈建議切換到mysqli的。

also mysql_real_escape_string() requires an active database connection

所以,你應該連接到數據庫第一或mysql_real_escape_string()將返回一個空字符串

DEBUG:如果表單

if (isset($_POST['aboutme'])) { 
     $aboutme = $_POST['aboutme']; 
     $aboutme = mysql_real_escape_string($aboutme); 
     $query = "UPDATE `users` SET `about_me`='" . $aboutme . "' WHERE `username`='" . $usn . "' LIMIT 1"; 

     mysql_query($query) or die(mysql_error()); 

} 
print_r($query); 

,這將讓你看到的查詢和觸發器將錯誤沒有發佈correctlly(未定義的變量$查詢)。

你可以在mysql上運行查詢,如果它輸出查看結果;

+0

它在較早的時間連接到數據庫。 – ChrisRockGM 2013-03-15 06:15:29

+0

0行受到影響。 (查詢花了0.0002秒) – ChrisRockGM 2013-03-15 06:41:46

+0

刪除LIMITE 1 – bleuscyther 2013-03-15 06:51:48