繁体   English   中英

MySQL在PHP中看不到专栏。 可以作为SQL语句

[英]MySQL can't see column in PHP. Ok as SQL statement

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

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语句并运行它,它将执行插入操作。 所有字段都存在,并且,正如我所说,如果我回显结果,它将很好地工作。

我看到您在$ CompanyName变量中混合了大小写。 您的MySQL专栏是否也可能采用大小写混合的标题? 也许是“公司名称”或“公司名称”?

为什么将变量括在单引号中? PHP将把它们读为字符串。 将它们用双引号引起来。 但是我不明白为什么会出现这个错误。 如何使用table_name.column_name而不是column_name呢?

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

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());

尝试

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

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

只是一个盲目的猜测...您确定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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM