【问题标题】:1054 - Unknown column 'apa_calda' in 'where clause'1054 - 'where 子句'中的未知列'apa_calda'
【发布时间】:2011-02-25 04:47:44
【问题描述】:

我在 MySQL 中不断收到错误 1054 - Unknown column 'apa_calda' in 'where clause'。这是查询:

SELECT user_id FROM `detalii_contor` WHERE tip_contor=apa_calda

我想在 PHP 文件中使用这个查询,但它没有给出任何结果。所以我尝试在SQL命令提示符下编写它。 这是我在 PHP 文件中尝试的内容:

$Q = "SELECT id_contor, den_contor FROM detalii_contor WHERE tip_contor='".$contor."'";

$Q = "SELECT id_contor, den_contor FROM detalii_contor WHERE tip_contor='$contor'";

即使没有"" 或没有''

我想从表单中获取$contor。我还尝试了$_POST['util']{$_POST['util']}。我也尝试将$contor 设置为我需要的值,但没有结果。

【问题讨论】:

    标签: php mysql mysql-error-1054


    【解决方案1】:

    字段值应该用引号引起来。
    SELECT user_id FROM detalii_contor WHERE tip_contor='apa_calda'

    顺便说一句,您应该始终逃避来自用户的一切。例如,

    $mysqli = new mysqli("host", "user", "password", "db");
    $contor = $mysqli->real_escape_string($_POST['util'] );
    $result = $mysqli->query(SELECT id_contor, den_contor FROM detalii_contor WHERE tip_contor='$contor'");

    【讨论】:

    • 我写的第一行是在 mysql 提示符中,我得到了错误。在 php 中我没有得到任何结果或错误。
    • 当你在 mysql 提示符下运行第一行时,你得到一个错误,因为你没有使用引号。 mysql_query (或 $mysqli->query) 在出错的情况下返回 false,所以你需要检查 mysql_error() 从服务器获取错误描述。从该描述中,您将看到您的查询出了什么问题。
    【解决方案2】:

    mysql 表示 apa_calda 是一个列名。如果它是一个值,引用它就像

    SELECT user_id FROM detalii_contor WHERE tip_contor='apa_calda'
    

    关于 $_POST['util'] - 尝试使用 $_REQUEST - http://php.net/manual/en/reserved.variables.request.php

    【讨论】:

    • 抱歉,结果不同,错误相同:#1054 - 'where 子句'中的未知列 'tip_contor'
    • 未知列?你确定吗?请提供你的代码,你会得到 $contor
    • 未知列 'tip_contor' - 这意味着您输入了错误的列名
    • $contor="apa_calda";这就是它的定义tip_contor是正确的,我检查,重新检查并再次检查,前后没有空格。
    【解决方案3】:

    可能是你在函数中设置了 $contor 吗?那么你应该使用指令“global”

    【讨论】:

      猜你喜欢
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多