【问题标题】:MySQL error about updating table [duplicate]MySQL关于更新表的错误[重复]
【发布时间】:2011-07-05 19:55:54
【问题描述】:

我想要的是通过按索引号选择行并更新该行上的答案字段来更新我的数据库表。

这是我的表单选择;它将索引 id 放入选项值。还有一个名为“answer”的文本区域。

<select name="indexno" style="width:150px">
<option selected="selected">&nbsp;</option>
<?php 
require('dbconnect.php');

$query = mysql_query("SELECT * FROM mytable WHERE answer = '' ");

while($result = mysql_fetch_array($query))
  {
  echo "<option " . "value='" . $result['index'] . "'>";
  echo $result['index'];
  echo "</option>";
  }

?>
</select>

这是 PHP 代码:

$indexno = $_POST['indexno'];
$answer = $_POST['answer'];
$date = gmdate("Y-m-d\TH:i:s\Z");
$query = "UPDATE mytable 
             SET answerfield = '$answer',
                 date = '$date' 
           WHERE index = '$indexno'";

$link = mysql_query($query);

但是,它不起作用;错误信息是:

您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的 'index = '2'' 附近

【问题讨论】:

  • index 是整数列吗?你可以试试$indexno 而不是'$indexno'
  • @Kieren Johnstone 是的,它是整数。
  • ...所以你有没有尝试我的建议?下一个问题,我的建议有影响吗?最后一个问题,它解决了问题吗?

标签: php mysql sql sql-update mysql-error-1064


【解决方案1】:

试试

WHERE `index` = '$indexno'";

【讨论】:

  • 啊,宾果游戏。 index 是保留字,需要转义。
  • @yi_H 现在工作了,谢谢。
  • 可能date也是保留的,我不记得了,但最好不要一开始就使用这样的字段名...
  • @yi_H 它工作了但是数据库中没有任何变化?!
  • 我认为你的代码有很大的混乱,answeranswerfieldindex... 试着仔细想想你实际上想要做什么
猜你喜欢
  • 2014-10-07
  • 2020-09-11
  • 2010-10-26
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-21
相关资源
最近更新 更多