我可以在php的if条件中使用mysql_result吗?

时间:2012-01-29 13:20:18

标签: php

此脚本有效,但如果找不到匹配项则会发出警告:

if (...)
    irrelevant...

elseif ($userId = mysql_result(
                     mysql_query("SELECT id FROM users WHERE mail = 'jhon@doe.com'")
                             , 0))
    echo $userId;

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 4

这是'好'的PHP吗?或者我是否必须以另一种方式解决这个问题?

脚本的目标:如果有用户拥有该邮件,请提供其ID

2 个答案:

答案 0 :(得分:2)

这非常难看,特别是因为你没有任何错误处理等。

最好创建一个执行返回用户id或NULL的检查的函数。然后你可以使用这样的代码:

elseif(($userId = get_userid_by_email('jhon@doe.com')) !== null)

答案 1 :(得分:2)

要删除警告,请检查该查询是否产生结果:

if($result = mysql_query("SELECT id FROM users WHERE mail = 'jhon@doe.com'"))
{
    if ($userId = mysql_result($result, 0))
    {
        echo $userId;
    }
}

有关详细信息,请参阅mysql_result参考。