SQL 从表中获取值

Posted

技术标签:

【中文标题】SQL 从表中获取值【英文标题】:SQL fetch value from table 【发布时间】:2019-06-27 10:11:04 【问题描述】:

我正在尝试编写一个从数据库中的表中获取值的函数。我可以成功保存一个值,但现在我遇到了麻烦。

我有一个名为 Response 的表,其中有多个列。其中之一是名为已处理的列,但我希望它适用于任何列。

function fetch($columnName, $senderID)
    $qry = "SELECT '$columnName' FROM Response WHERE senderID = '$senderID'";
    $conn = $this->connect();

    if ($conn->connect_error) 
        die("Connection failed: " . $conn->connect_error);
    

    if ($result = $conn->query($qry) === TRUE) 
        return $result;
    
    $conn->close();

然后我想将数据库值放入一个变量中

 $val = $db->fetch('processed', $senderID);

但是我的代码不起作用。当我尝试检查 $val 中保存的内容时,我什么也得不到。

【问题讨论】:

为什么要在列名周围加上引号? 删除列名和 $senderID 周围的引号,使用 concat 运算符 看起来你使用你的函数错误尝试 $db->fetch($senderID, 'processed'); 我在某处看到了引号。我将它们删除并查看 【参考方案1】:

您的代码的问题在于您何时使用

$result = $conn->query($qry) === TRUE

您正在检查查询是否返回TRUE,但实际得到的是true。因此,您的条件将永远是错误的。所以把它改成

$result = $conn->query($qry) == TRUE

会成功的。

使用===比较运算符意味着该值在所有方面都应该与您定义的相同。

您可以使用==比较运算符来检查值是否等于给定值。

【讨论】:

很抱歉,我在这里输入 $val 时不小心切换了这些。在代码中它的顺序正确,但它仍然不起作用 不,不是。我在一个文件中有一个名为 Database 的类。然后在我调用它的文件中( $val = $db->fetch... 所在的位置)我 include "filewithdatabase"; 然后使用 $db =新数据库();我使用相同的过程来添加数据库记录,我有一个名为 save 的函数,它可以工作。我在 $val = $db->fetch... 上面几行调用它,所以文件链接正确 通过尝试获取 $val - 我试图在之后立即显示它,但它不显示任何内容。 我尝试替换返回的 $result,但没有出现。然后我把它放在顶部,“工作”确实出现了 我刚刚注意到我们尝试的所有 $sql 都进入了 Else 语句 if($result ... === TRUE) ... else //这段代码每次都会执行

以上是关于SQL 从表中获取值的主要内容,如果未能解决你的问题,请参考以下文章

使用 select from 从表中获取值以存储在插入表中

雪花上的 SQL 存储过程将绑定列视为字符串,并且它没有从表中获取其值

SQL 命令:从表中获取最小日期和小时

SQL 查询 SELECT FROM [从表名中选择值]

SQL 从表中选择并获取表名

从 DB2 中的表中获取值