0

我在 php 中有这段代码,用于从 mysql 数据库中进行查询

if(isset($_SESSION["esb2b_userid"])){
     $check_row = mysql_num_rows(mysql_query("select * from esb2b_basket where es_session='.$site.' and es_uid=".$_SESSION["esb2b_userid"]) or die(mysql_error()));

     echo "Logged in as <b>" . $_SESSION["esb2b_username"] . "</b>" ;
    ?> <?   }else{
    ?>  <? echo "$to" ?> Our Website <? } ?> <? if($_SESSION['esb2b_userid']=='')
            {?> <span id="log-info"><a href="<?=$domain_url?>/signup.html"><? echo "$Join_Free" ?></a><?php }?> |

     <? if($_SESSION['esb2b_userid']=='')
            {?> <a href="<?=$domain_url?>/signin.php?file="><? echo "$Sign_In" ?></a><?php } else { ?><a href="<?=$domain_url?>/logout.php" > <? echo "$Sign_out" ?> </a><?php }?>

但在这里我收到这样的错误

Unknown column 'esb2b_userid' in 'where clause'

那么有人可以告诉我为什么我会得到这个结果,我该如何解决这个问题?任何帮助和建议都将是非常可观的。谢谢

4

3 回答 3

1

改变这个

mysql_query("select * from esb2b_basket where es_session='.$site.' and es_uid=".$_SESSION["esb2b_userid"])

mysql_query("select * from esb2b_basket where es_session='".$site."' and es_uid=".$_SESSION["esb2b_userid"])
于 2013-03-04T11:25:43.170 回答
1

mysql_real_escape_string你应该通过sql 注入来逃避你的变量试试这个

  $check_row = mysql_num_rows(mysql_query("select * from esb2b_basket 
  where es_session= '".mysql_real_escape_string($site)."' 
         and es_uid='".mysql_real_escape_string($_SESSION["esb2b_userid"])."' ") or die(mysql_error()));

并且请不要使用 mysql ,更改为 mysqli 或 PDO

于 2013-03-04T11:28:22.437 回答
0

您查询中的括号有点混乱,请尝试:

$check_row = mysql_num_rows(mysql_query("select * from esb2b_basket where es_session='".$site."' and es_uid='".$_SESSION["esb2b_userid"]."') or die(mysql_error()));
于 2013-03-04T11:27:09.043 回答