首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“字段列表中的未知列'geir‘”

问“字段列表中的未知列'geir‘”
EN

Stack Overflow用户
提问于 2011-02-03 00:27:59
回答 2查看 673关注 0票数 2

我写了这个查询:

代码语言:javascript
复制
$query = "UPDATE encodage_answer 
             SET Answer = geir 
           WHERE encodage_question_ID = 128 
             AND encodage_ID = 305 
             AND Extra = NULL";
$insert = mysql_query($query, $connection) or die(mysql_error());

但是,如果我运行这段代码,我总是会得到相同的错误:

“字段列表”中的

未知列“geir”

可能是我,但我想我不是说geir是一个专栏/字段,有什么问题吗?

当我在我的PHPMyAdmin中直接运行这个查询时,它工作得很好。

更新:完整代码:

答案是存在的,$Extra变量为空

代码语言:javascript
复制
$AnswerExists = answer_exists($Question_ID, $encodage_ID, $Extra);
            if($AnswerExists <> ""){
                if($Answer != NULL){
                    $correctAnswer = mysql_prep($Answer);
                    if($Extra != NULL){
                        $query = "UPDATE `encodage_answer` SET `Answer` = '" . mysql_prep($Answer) . "' WHERE `ID` = '" . $AnswerExists . "'";
                        $insert = mysql_query($query, $connection) or die(mysql_error());
                        $query2 = "UPDATE `encodage_answer` SET `Extra` = '" . $Extra . "' WHERE `ID` = '" . $AnswerExists . "'";
                        $insert = mysql_query($query2, $connection) or die(mysql_error());
                    }else{
                        $querytest = "UPDATE `encodage_answer` SET Answer = " . $Answer . " WHERE ID = " . $AnswerExists;
                        $insert = mysql_query($querytest, $connection) or die(mysql_error());
                    }
                }
            }

function answer_exists($Question_ID, $encodage_ID, $Extra){
        global $connection;
        $trfa = false;
        echo $Question_ID . " - " . $encodage_ID . "<br />";
        if($Extra <> ""){
            $query = "SELECT * 
                FROM encodage_answer
                WHERE encodage_ID = {$encodage_ID} AND encodage_question_ID = {$Question_ID} AND Extra = {$Extra}";
        }else{
            $query = "SELECT * 
                FROM encodage_answer
                WHERE encodage_ID = {$encodage_ID} AND encodage_question_ID = {$Question_ID}";
        }
EN

回答 2

Stack Overflow用户

发布于 2011-02-03 00:29:01

尝试将单引号放在geir周围。通过不引用要将列设置为的字符串,SQL后端认为要将Answer列的值设置为geir列的值。由于您的表中不存在geir列,因此它会引发一个错误。

编辑:--我怀疑PHPMyAdmin有某种类型的SQL语句过滤来捕捉这样的情况,并且会自动为您在字符串周围放置引号。

票数 6
EN

Stack Overflow用户

发布于 2011-02-04 00:09:08

谢谢大家的帮助!我正在将所有查询更改为更安全的格式!SQL注入治疗不再是一个问题!谢谢你告诉我!

关于我的问题:我是个十足的白痴!在寻找了20个小时的解决方案后,我发现了我的错误!该错误用于另一个查询。我很抱歉浪费了你的时间,但我是新手(因此,sql注入问题),所以我希望我可以犯一些错误。

谢谢

延斯

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4881539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档