0

mysqlデータベースからクエリを作成するために、phpにこのコードがあります

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_real_escape_stringSQLインジェクションから変数をエスケープする必要がありますこれを試してください

  $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 に答える
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 に答える
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 に答える