2013-03-15 117 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