带有MySQL查询的PHP if语句

时间:2011-02-09 22:46:05

标签: php mysql

有没有办法像这样做if语句:

if ($password == mysql_query("SELECT password from member WHERE id = $id")) {

// f00

}

所以我的意思是,如果在if中有一个简短的查询是可能的和/或良好的做法,而不是先从你的数据库中提取它。

谢谢!

3 个答案:

答案 0 :(得分:1)

mysql_query返回一个资源,因此无法正常工作

答案 1 :(得分:0)

我不推荐它。如果SQL中存在错误,如果无法连接到服务器,如果没有返回行,或者存在任何其他错误,那么您将遇到一些大问题。

答案 2 :(得分:0)

当然可以,但这不是一个好主意。

考虑您是否使用数据库抽象层而不是基本的php_mysql,如adodb

你可以轻松拥有:

   if($password == $DB->GetOne('Select password from member where id = '.$ID)){
        //do something
   }

但是,如果查询失败或以其他方式返回了您隐含期望的任何内容,则可能会出现无法预料的错误。

您应该封装数据库输出和数据库查询,这样如果它们失败,它们会优雅地失败,并且不会产生奇怪的副作用,这些副作用可能会在以后跟踪时很难。