我找不到任何问题…这应该行得通吧?
function ConfirmedNumber()
{
$rs = mysql_query("CALL ConfirmedNumber('" , $_SESSION['UserID'] . "',@Active)");
while ($row = mysql_fetch_assoc($rs))
{
if ($row['Active'] = 1)
{
return true;
}
}
return false;
}
假设存储过程返回一行,其中值为'1',那么我可以像这样调用函数,对吗?
if (ConfirmedNumber())
{
//do some stuff.
}
对我的评论进行扩展:
if ($row['Active'] = 1)
必须是if ($row['Active'] == 1)
才能正常工作。
如果你想避免在将来不小心这样做,你可以这样写你的If语句:
if (1 == $row['Active'])
这样,你就不会意外地使用=
,因为PHP会抛出致命错误。您可以在PHP.net
在下面评论完整的答案:
对存储过程的调用…line $rs = mysql_query("CALL ConfirmedNumber('"))。$ _SESSION("标识")。"@Active)");在最初的文章中使用逗号代替句号。
您在IF语句中忘记了操作符。改成这样:
if ($row['Active'] == 1)
或更短的
if ($row['Active'])
可以是这样的
function ConfirmedNumber($id)
{
$rs = mysql_query("CALL ConfirmedNumber('" . $id . "',@Active)");
while ($row = mysql_fetch_assoc($rs))
{
if ($row['Active'] == 1)
{
return true;
}
}
return false;
}
ConfirmedNumber($_SESSION['UserID']);