此脚本有效,但如果找不到匹配项则会发出警告:
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
答案 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
参考。