2013-03-04 55 views
0

我有這段代碼在PHP爲使得從MySQL數據庫PHP決策查詢得到錯誤,如在未知列「where子句」

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' 

所以,有人可以告訴我,我得到這個結果,我該如何解決這個問題?任何幫助和建議都將非常可觀。由於

+0

嗨!您應該使用已準備好的查詢來使用PDO。 – Guicara 2013-03-04 11:27:22

+1

[**請不要在新代碼**中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-03-04 11:27:35

+0

我們可以看到你的數據庫模式嗎?很明顯,'esb2b_userid'列不存在。此外,您的代碼缺少結尾雙引號,並且會受到普通的SQL插入攻擊。 – 2013-03-04 11:42:23

回答

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"]) 
+0

我仍然在那條線上得到同樣的錯誤... – 2013-03-04 11:31:56

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())); 
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

相關問題