2012-10-10 135 views
-1

可能重复:
MySQL - when to use single quotes, double quotes, and backticks?MySQL查询更新

我有这样的一段代码,我不能得到正常工作。

require_once("../Packages/Connection.php"); 

     $text = mysql_real_escape_string($_POST["articleText"]); 

     $method = $_POST['method']; 
     $articleId = $_POST['articleId']; 

     if($method == "update") 
     { 
      mysql_query("UPDATE Articles SET 'text'='".$text."' WHERE 'id'='".$articleId."'") or die(mysql_error()); 
     } 

很是烦人了我这么多, 这是错误我得到 - 你有一个错误的SQL语法;检查对应于你的MySQL服务器版本正确的语法使用近'文本“=” tester2' 手动WHERE‘身份证’=‘29’”在1号线...

预先感谢

+2

我建议转义$ articleId,因为你的SQL不是这样。甚至更好的是你应该使用PDO并准备好语句。 – Niborb

+1

您是否按照错误消息中的建议检查了Mysql手册? – hakre

回答

0
mysql_query("UPDATE Articles SET text='".$text."' WHERE id='".$articleId."'") or die(mysql_error()); 
1

为什么你在你的SQL“文本” ...

应该仅仅是文字是和多数民众赞成:(ID为同样的事情)

mysql_query("UPDATE Articles SET text = '".$text."' WHERE id='".$articleId."'") or die(mysql_error()); 

什么,你可能有困惑“,”与,是倒退或“`”逃避人物和有利于保留关键字...

+0

好的,谢谢:)但我有一个朋友帮助我,就在我发布这个..对不起。 (“更新文章设置文本='$ text'WHERE id ='$ articleId'”)或死(mysql_error()); – JapSeyz

+0

这正是我发布的除了你已经使用“变量解析”内的字符串,而我干净地结束了字符串。取决于品味... –

-2

你应该使用这个

mysql_query("UPDATE Articles SET text ={$text} WHERE id ={$articleId}") or die(mysql_error()); 
+1

你会得到这样的查询语法错误。你需要引用文本值。 – Jocelyn

0

尝试

mysql_query("UPDATE Articles SET `text`='".$text."' WHERE `id`='".$articleId."'") 
0

首先构建查询,然后执行它:

$sql = "UPDATE Articles SET 'text'='".$text."' WHERE 'id'='".$articleId."'"; 
$r = mysql_query($sql); 
if (!$r) { 
    echo "Query: ", $sql, "\n"; 
    echo "Error: ", mysql_error(); 
    die(); 
} 

这将允许您更好地审查你发送的内容到底是什么他的数据库,以便您可以实际检查语法正如错误消息所建议给你的。