【发布时间】:2013-11-03 08:29:26
【问题描述】:
好的,所以我希望这段代码 sn-p 检查数据库中是否存在变量 $_GET['p'],如果存在则使 $p = $_GET['p'],如果不存在如果存在则使 $p = '1',如果 $_GET['p'] 甚至没有在链接中设置,则只显示 id 为 0 的页面($p = '0';)。这是我的代码。仅在链接中设置变量时显示“未知页面”。
if (isset($_GET['p']))
{
$getpage = $_GET['p'];
$sql = sprintf("SELECT * FROM pages WHERE id=%d LIMIT 1", $getpage);
$result = $con->query($sql);
if ($result && $result->mum_rows > 0 ){
// if page id exists in "pages" table, then make $p = $_GET['p'].
$p = $getpage;
}
else
{
// if "p" ID doesn't exist in DB, then show "unknown page" page with id of "1".
$p = '1';
}
}
else if (!isset ($_GET['p']))
{
//if variable "p" isn't set in link then display homepage or page with ID of 0.
$p = '0';
}
【问题讨论】:
-
上面的代码有什么问题?它是否输出任何错误?
-
Little Bobby Tables 会爱你的。以下是如何让他远离bobby-tables.com/php.html
-
它没有显示任何错误,但是当我输入常规页面 id 时,例如localhost/cms/example.php?p=2,它一直显示我在数据库中的“未知页面”。是的,存在一个 ID 为 2 的页面,所以我不知道为什么它只输出 ID 为 1 的未知页面。
-
使用 Mysqli 启用异常抛出还会将错误记录到最高警告级别的文件并遵循错误日志。并且:使用具有您可以信任的名称的变量。分配给变量。不要一次做太多事情。测试隔离的代码块。
-
您确定查询成功了吗?您需要从 MySQL 检查错误,并显示错误消息。