加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

更改PHP / SQL查询时出现问题

发布时间:2020-12-13 22:04:25 所属栏目:PHP教程 来源:网络整理
导读:在我的网站上,我有一个只有在人员详细信息位于名为Members的表中才能查看的页面,这些值是从上一页的表单中发布的.这是我的原始代码,它运行良好: $query = "SELECT * FROM Members WHERE firstname='" . $firstname . "' and surname='" . $surname. "'"; $r
在我的网站上,我有一个只有在人员详细信息位于名为Members的表中才能查看的页面,这些值是从上一页的表单中发布的.这是我的原始代码,它运行良好:

$query = "SELECT * FROM Members WHERE firstname='" . $firstname . "' and surname='" . 
$surname. "'"; 
$result = mysql_query($query);
$rows = mysql_num_rows($result);

if ($rows == 1) 
{ 
   //user continues loading page
} 
else 
{ 
   header ('location: signup.html'); //user is redirected to sign up page 
}

在对网站进行一些更改之后,我现在要求同一个用户必须在Members表中使用paid =’TRUE’才能继续加载页面.这是我提出的代码:

$query = "SELECT * FROM Members WHERE firstname='" . $firstname . "' and surname='" . 
$surname. "'"; 
$result = mysql_query($query);
$rows = mysql_num_rows($result);

$query = "SELECT paid FROM Members WHERE firstname='" . $firstname . "' and surname='" . 
$surname. "'"; 
$result = mysql_query($query);
$paid = mysql_num_rows($result);


if ($rows == 1 && $paid=='TRUE') 
{ 
   //user continues loading page
} 
else 
{ 
   header ('location: signup.html'); //user is redirected to sign up page 
 }

使用这个新代码,即使用户付费,它也会将它们重新引导到注册页面……我是否以错误的方式解决了这个问题?

解决方法

你用“TRUE”检查$paid,但用mysql_num_rows填充它.
尝试:

if ($rows > 0  && $paid >0 )

代替.

另外,由于我无法看到你是否正确地逃避了你的字符串,请注意$firstname和$surname应该被转义/验证.

无论如何,你可以跳过第二个mysql_query并使用:

$query = "SELECT * FROM Members WHERE firstname='" . $firstname . "' and surname='" . 
    $surname. "'"; 
    $result = mysql_query($query);
    $rows = mysql_num_rows($result);
    if( $rows ){

    $row = mysql_fetch_assoc($result);
        if($row['paid'] =='TRUE') {
            //continue
        } else {
    //redirect
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读