【问题标题】:SQL error when updating更新时出现 SQL 错误
【发布时间】:2013-09-26 02:05:58
【问题描述】:

我在运行 PHP SQL 代码时出现以下 SQL 错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“WHERE useid = 8”附近使用正确的语法

mysql_query("UPDATE free_ebook SET math = $assign_math WHERE useid = $newuserid;")or die(mysql_error());

math 字段为int(10)useid 也是int(10)

【问题讨论】:

  • 史密斯先生您好,欢迎来到 SO。
  • 你的变量解析成什么?也许它们是终止您的查询的未转义字符串
  • 提供$assign_math的值
  • mysql_* 函数不再维护,不应在任何新代码库中使用。它正在逐步淘汰,以支持更新的 API。相反,您应该将prepared statementsPDOMySQLi 一起使用。
  • @Sean $assign_math = $_POST['input_math'];哪个是整数

标签: php mysql


【解决方案1】:

看起来字段名称应该是userid,而不是useid

或者,尝试将值括在单引号中,如下所示:

"UPDATE free_ebook SET math = '".$assign_math."' WHERE useid = '".$newuserid."';"

甚至

"UPDATE free_ebook SET math = '{$assign_math}' WHERE useid = '{$newuserid}';"

关于主题:mysql_query() 已弃用,您应该使用 PDO 扩展。它很容易(也许更容易!)学习并且更安全:

Are there good tutorials on how to use PDO?

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html

【讨论】:

  • 不要派人到 nettuts 或 phpro 页面获取教程。这两个网站都告诉人们将 PDO 与模拟准备一起使用,这否定了从准备好的语句中获得的任何优势。而是将人们引导至此页面:wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers
猜你喜欢
  • 2014-06-09
  • 2012-10-06
  • 2017-02-07
  • 1970-01-01
  • 2021-07-01
  • 1970-01-01
  • 2017-10-11
  • 2019-04-14
  • 1970-01-01
相关资源
最近更新 更多