【问题标题】:I added two fields on table and now insertion won't work [duplicate]我在表格上添加了两个字段,现在插入不起作用[重复]
【发布时间】:2014-01-01 20:33:27
【问题描述】:

各位新年快乐。我是一个新手,显然是一个傻瓜。我有一个运行良好的电影数据库的 HTML 输入表单。我决定在数据库中添加两个字段(7201080。)这就是我所做的,老实说。但现在它不写了,我得到了可怕的错误 X。我已经检查了几个小时的代码,但找不到我做错了什么。

任何建议将不胜感激。

//  Write data to table.    

 $sql="INSERT INTO movies (Movies, Rating, Genre, Year, Actors, Time, Notes, Viewed, link, 720, 1080)
    VALUES ('" . $_POST['Movies'] . "', '" . $_POST['Rating'] . "', '" . $_POST['Genre'] . "', '" . $_POST['Year'] . "', '" . $_POST['Actors'] . "', '" . $_POST['Time'] . "', '" . $_POST['Notes'] . "', '" . $_POST['Viewed'] . "', '{$f_link}', '" . $_POST['720'] . "', '" . $_POST['1080'] . "')";

 if (!mysqli_query($con,$sql))
  {
 die('Error: X ' . mysql_error($con));
  }

 echo "<center>1 record successfully added</center>";

    mysqli_close($con);

【问题讨论】:

  • 而其余的错误信息是......?也许如果你使用mysqli_error 而不是错误的mysql_error 你就会知道。
  • link 未命名为 Link 将遵循大小写模式?
  • 与您的问题无关,但将 $_POST 变量直接连接到您的查询中是一种非常非常简单的方法,可以让您的网站受到损害/黑客攻击。您应该尝试阅读 bobby-tables.com 了解原因以及如何预防。
  • 谢谢各位。看来您已经解决了我的问题。我确实想到,也许我不能只为一个领域编号。我敢肯定,一旦我改变了这些,它就会起作用。谢谢。
  • 感谢@Set Sail Media,您是对的。我不仅是新手,而且是黑客。当我添加链接字段时,我并没有保持一致,我就这样离开了。我想我应该解决这个问题。谢谢。

标签: php mysql


【解决方案1】:

来自 Mysql 文档:

http://dev.mysql.com/doc/refman/5.1/en/identifiers.html

标识符可以以数字开头,但除非被引用,否则标识符可能不完全由数字组成。

【讨论】:

    【解决方案2】:

    使用反引号转义列名有效,因此请改用`720``1080`

    在旁注中,您应该在插入之前清理和转义 $_POST 数据。

    另外,我认为您必须使用mysqli_error() 而不是mysql_error()

    【讨论】:

      【解决方案3】:

      各位,再次感谢大家的帮助。我不得不在两天前赶到杂货店,因为暴风雪将在午夜左右来临。

      我将名称更改为 R720 和 R1080(用于分辨率),这解决了问题。不幸的是,我不知道为什么,如果我尝试使用 mysql 而不是 mysqli,我会收到错误消息。它从来没有真正给过我代码。只是错误 X。

      我确实看过 bobby-tales 的幻灯片,但现在对我来说有点多。我会在接下来的几天里研究它并尝试理解它。

      再次感谢,祝您新年快乐。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多