【问题标题】:MySQL can't see column in PHP. Ok as SQL statementMySQL 在 PHP 中看不到列。确定为 SQL 语句
【发布时间】:2009-10-15 07:10:06
【问题描述】:

我正在尝试使用以下插入:

mysql_query ("INSERT INTO users (company_name, fname, lname, salt, email, date_added, password) 
                VALUES ('$CompanyName', '$fname', '$lname', '$salt', '$email', '$mysqldate', '$encrypted')")
  or die(mysql_error());

但我得到一个错误:

Unknown column 'company_name' in 'field list'

如果我回显查询,将其粘贴为 SQL 语句并运行它,它会执行插入操作。所有字段都存在,正如我所说,如果我回显结果,它就可以正常工作。

【问题讨论】:

  • 您是否使用 mysql_select_db() 选择了正确的数据库?

标签: php sql mysql


【解决方案1】:

我看到您在 $CompanyName 变量中混合了大小写。是否有可能您的 MySQL 列也以混合大小写命名?也许是“Company_name”或“Company_Name”?

【讨论】:

  • 好点,但是如果查询剪切并粘贴到 SQL 客户端中正常工作,则不应该存在区分大小写的问题...
【解决方案2】:

为什么你的变量用单引号括起来? PHP 会将它们读取为字符串。用双引号将它们括起来。但我不明白你为什么会收到这个错误。使用 table_name.column_name 而不是 column_name 怎么样?

【讨论】:

  • 不会。它用双引号括起来,单引号仅适用于 MySQL。换句话说,单引号用双引号括起来。
【解决方案3】:

我没有看到您的查询有任何问题,如果它与架构匹配,它应该可以工作。 无论如何,尝试转义表和字段名,下面是修改后的查询:

msql_query ("INSERT INTO `users` (`company_name`, `fname`, `lname`, `salt`, `email`, `date_added`, `password`)
               VALUES ('$CompanyName', '$fname', '$lname', '$salt', '$email', '$mysqldate', '$encrypted')")
  or die(mysql_error());

【讨论】:

    【解决方案4】:

    试试

    mysql_query ("INSERT INTO users (fname, lname, salt, email, date_added, password)
                    VALUES ('$fname', '$lname', '$salt', '$email', '$mysqldate', '$encrypted')")
      or die(mysql_error())
    

    如果问题仍然存在,则说明您的连接或users 表存在问题。

    【讨论】:

      【解决方案5】:

      只是一个盲目的猜测...您确定 mysql_query 语句将占位符替换为“echo”的实际变量值吗? 试试:

      mysql_query ("INSERT INTO users (company_name, fname, lname, salt, email, date_added, password) 
                  VALUES ('" . $CompanyName . "', '" . $fname . "', '" . $lname . "', '" . $salt. "', '" . $email . "', '" . $mysqldate . "', '" . $encrypted . "')")
      or die(mysql_error());
      

      【讨论】:

        猜你喜欢
        • 2015-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-20
        • 2013-05-03
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        相关资源
        最近更新 更多