【发布时间】:2012-06-10 10:22:38
【问题描述】:
由于我使用 PDO 而不是 mysql_* 命令重写 web 的过程几乎完成了,我现在正在测试我更改的函数。而且似乎我为mysql_result(mysql_query() 更改的函数总是返回true,这是为什么呢?让我们看看原始代码和更改代码:
if (mysql_result(mysql_query("SELECT COUNT(*) FROM account WHERE id='".$_SESSION["user_id"]."' AND online=1"), 0)>0)
{
return true;
}
else
return false;
并在此处更改代码:
$stmt = $db_login->prepare("SELECT COUNT(*) FROM account WHERE id=:id AND online=1");
$stmt->bindValue(':id', $_SESSION["user_id"], PDO::PARAM_INT);
$stmt->execute();
$results_login = $stmt->fetch(PDO::FETCH_ASSOC);
$rows = count($results_login);
if ($rows > 0)
{
return true;
}
else
return false;
那么问题是为什么即使 column 的 online=0 也总是返回 true?谢谢
【问题讨论】:
-
@tereško 所以在我的情况下它是 $rows = count(array(0)); ?
-
拜托,去学php吧,不要盲目的复制粘贴代码
-
在我的学习书中总是有 mysql_* 命令:(所以我正在尝试自己学习 PDO 和它的系统:) 我已经知道 count 从答案返回大数字所以我不明白你为什么把它贴在这里:)
-
@Byakugan:如果您发现有问题,请尝试定位错误。不只是笼统地问。但是,我可以理解,如果您更改为新内容,则很难找到错误点。但是,尽管如此,尝试找出错误是如何在调试中发生的“一点”,例如使用
var_dump($results_login);等。 -
OK thnk 你会的 :) 我只是认为它可能会发生在其他人身上,并且将来可能对某人有用:)