【发布时间】:2016-03-04 09:43:29
【问题描述】:
我有一个查询来检查表中的行是否存在。它应该返回一个“真”或“假”值,但事实并非如此。
查询和代码如下所示。我应该提到我使用 CodeIgniter 框架,因此使用了对象名称和函数名称。
$query="SELECT CASE WHEN EXISTS
(
SELECT * FROM Users
WHERE Email=".$this->db->escape($email)."
AND PassWord=MD5(".$this->db->escape($password).")
)
THEN 'TRUE'
ELSE 'FALSE'
END";
$result=$this->users_db->query($query);
$resulting_array=$result->row();
echo "<pre>".var_dump($resulting_array)."</pre>";
此代码给出以下结果:
object(stdClass)#22 (1) {
["CASE WHEN EXISTS
(
SELECT * FROM Users
WHERE Email='r.blaauwen@erasmusmc.nl'
AND PassWord=MD5('rrt')
)
THEN 'TRUE'
ELSE 'FALSE'
END"]=>
string(5) "FALSE"
}
似乎$result->row(); 传递了一个对象而不是数组/字符串/布尔值。 'FALSE' 结果在那里,但我不知道如何检索它。
【问题讨论】:
-
SELECT CASE WHEN EXISTS ( SELECT * FROM Users WHERE Email=".$this->db->escape($email)." AND PassWord=MD5(".$this->db->escape($password).") ) THEN 'TRUE' ELSE 'FALSE' END AS my_alias_for_data然后echo $resulting_array->my_alias_for_data.... 虽然$resulting_array用词不当,因为您要为行返回对象,而不是数组 -
工作就像一个魅力,非常感谢。你会把它作为答案发布,以便我可以将其标记为已解决?
标签: php mysql codeigniter