转义插入Mysql的字符串

时间:2012-04-20 12:17:22

标签: php mysql escaping

我已尝试过单引号,双引号等的所有组合,但以下代码一直出现sql语法错误。 en和cy是文本的段落。我想我必须遗漏一些显而易见的东西,但我无法看到它。有什么建议吗?

$insert_dana = mysql_query("UPDATE Contributor (Summary_en,Summary_cy) VALUES ('" . mysql_real_escape_string($insert[en][0]) . "','" . mysql_real_escape_string($insert[cy][0]) . "') WHERE id='$insert[id]'");

2 个答案:

答案 0 :(得分:2)

您混合了insertupdate语句语法。使用这个

$insert_dana = mysql_query("UPDATE Contributor set Summary_en = '" . mysql_real_escape_string($insert[en][0]) . "', Summary_cy = '" . mysql_real_escape_string($insert[cy][0]) . "' WHERE id='$insert[id]'");

答案 1 :(得分:1)

您会混淆the UPDATE-the INSERT-语法。对于UPDATE,它就像:

UPDATE
  table
SET
  field = 'value'
WHERE
  ...

虽然INSERT看起来像:

INSERT INTO
  table
  (field) 
VALUES
  ('value')

您无法使用UPDATE语法撰写(field) VALUES ('value')