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 从表中获取值的主要内容,如果未能解决你的问题,请参考以下文章