不确定我错过了什么?
这段代码中出现了一个问题,即如果$_GET['post_id']未设置,则会出现错误。为了解决这个问题,可以使用三元运算符来检查$_GET['post_id']是否设置,如果未设置,则将变量$id设为空。如果$id为空,则终止页面的执行,并显示错误消息“没有设置ID!”。
然而,有人提出了一个更友好的解决方案,即不要终止页面的执行,而是提供一个备选方案,比如将用户重定向到主页或一个随机的帖子。
对此,有人同意这个解决方案,并指出可以将die()
函数替换为任何其他解决方案。
下面是整理后的文章:
尝试使用以下代码:
select($query)->fetch_assoc(); $query = "SELECT * FROM catagory"; $catagory = $db->select($query); ?>
与其终止页面的执行,提供一个备选方案似乎更友好...比如将用户重定向到主页或一个随机的帖子。
我同意这个解决方案。我只是使用了die()
函数,因为我不知道OP的服务器设置或者OP希望发生什么,但是可以很容易地将其替换为OP想要的任何其他解决方案。
这个问题的出现的原因是在代码中没有明确表明post_id的来源。变量声明的语句写错了,应该改为判断post_id是否存在,如果存在则将其赋值给id变量,否则将id赋值为空字符串。这样做的原因是URL参数中可能没有指定post_id,这会导致致命错误并终止脚本的执行。通过添加if语句,可以确保post_id存在,如果不存在,则将id设置为NULL。这个修改是正确的,但是它不会导致致命错误,而是会导致一个提示,代码会继续执行但不会正常工作。对于这个问题,我认为代码需要post_id变量才能正常运行,没有id或者错误的id也会停止脚本的执行,因为它在查询中是必需的。如果查询有问题,那么这里尝试的任何操作都不会起作用。你是对的,它不会起作用,但不会抛出致命错误(至少不是因为$id变量),即使变量没有设置,页面也会继续执行,只是数据库没有输出。请查看我的答案,我解决了这个问题。这是个不错的答案,我提出了一个建议。