【问题标题】:mysql_query Issue - Syntax errormysql_query 问题 - 语法错误
【发布时间】:2012-08-24 12:35:53
【问题描述】:

我目前正在构建一个包含多个下拉菜单的 Web 表单,我想通过 PHP 将它们提交到 SQL 数据库中。

我的 PHP 知识很少,但没有比做它更好的学习方法了!我正在按照本指南将数据发布回我的数据库 - Link

我的代码是:

$CLI = $_POST['CLI'];
$Environment = $_POST['Environment'];
$Type = $_POST['Type'];
$Fault = $_POST['Fault'];

$query="INSERT INTO testtable (cli, env, type, fault)VALUES ('$CLI', '$Environment', '$Type', '$Fault')"

mysql_query($query) or die (mysql_error());

echo "Database Updated With: ".$CLI";

当我编辑此代码时,我在 mysql_query 行和 echo 行上遇到语法错误。我已经将它上传到我的服务器,但是它会进入 php 更新页面,然后不会将数据发布回数据库。

有人可以帮忙吗?我找不到任何简单的答案来解决它!

谢谢

【问题讨论】:

  • 您遇到的语法错误是什么?
  • 在执行之前你可以这样做:echo $query;
  • Dreamweaver 只是指出我在以下行有语法错误:mysql_query($query) or die (mysql_error()); echo "数据库更新为:".$CLI";
  • 1.您要求以这种方式被黑客入侵! 2. 如果您遇到语法错误,为什么不发布错误?!还要检查您列出的所有字段是否存在于您的数据库表中以及类似的内容。
  • 请不要在新应用程序中使用mysql_query。由于SQL injection bugs 存在严重问题,此接口将被逐步淘汰,正如您在简单示例中所展示的那样。如果这些值中的任何一个包含',那么您的查询将不起作用。在所有情况下,您都应该使用 mysqli 或 PDO 和占位符来正确执行此操作。

标签: php mysql sql insert


【解决方案1】:

您需要先使用mysql_connect() 连接到您的数据库,然后再运行mysql_query()

http://php.net/manual/en/function.mysql-connect.php

【讨论】:

    【解决方案2】:

    你需要在 mysql 行的末尾加一个分号(在最后一个引号之后)。

    VALUES 之前可能需要一个空格。

    最后一行末尾有一个额外的"

    换句话说:

    $query="INSERT INTO testtable (cli, env, type, fault) VALUES ('$CLI', '$Environment', '$Type', '$Fault')";
    
    mysql_query($query) or die (mysql_error());
    
    echo "Database Updated With: ".$CLI;
    

    注意:

    正如评论中提到的,如果有人调用页面传递这个:

    &Type=','');+DROP+TABLE+testtable;+--
    

    ...它将删除您的数据!请在为时已晚之前阅读“Sql 注入攻击”。

    【讨论】:

    • 按照他应该很快被黑的方式组装查询,不是吗?
    • 非常感谢 egrunin,已经解决了 :) 我的 "'s 太多了。
    • @user1634278 - 很高兴能提供帮助,我已经添加了更多内容来解决 Spark 的非常重要的问题。
    【解决方案3】:

    $query="INSERT... 行的末尾没有分号,最后一行的分号前有一个额外的双引号。

    出现问题的 PHP 错误应该非常清楚地指出这一点。

    【讨论】:

      【解决方案4】:

      请修改您的代码。你想念 ;在$query=... 之后,最后一行有额外的"

      【讨论】:

        【解决方案5】:

        您在行尾缺少分号:

        $query="INSERT INTO testtable (cli, env, type, fault)VALUES ('$CLI', '$Environment', '$Type', '$Fault')"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-12
          • 2011-10-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-22
          • 2017-11-09
          • 2017-12-01
          相关资源
          最近更新 更多