2012-11-30 63 views
-3
<?php 
    $sn=$_GET['sn']; 
    $query="SELECT * FROM `banner_ad` WHERE `banner_no`='$sn'"; 
    if($query_run=mysql_query($query)) 
    { 
     $num=mysql_num_rows($query_run); 
     if($num == 1) 
     { 
      while($rows=mysql_fetch_array($query_run)) 
      { 
       $banner_name=$rows['banner_name']; 
       //$banner_site_url=$rows['Banner_website_url']; 
       $banner_image_url=$rows['banner_image_url']; 
      } 
     } else { 
      echo'<font color="red"> There is two entry for this same serial number.</font>'; 
      } 

    } else { 
     echo'<font color="red"> Query does not run.</font>'; 
     } 
?> 

任何人都可以告訴我我無法執行此查詢嗎?Mysql SELECT命令

+2

使用mysql_error()來找到什麼是錯 – Jarry

+0

你得到哪些錯誤? – Eray

+1

查詢不運行 –

回答

1

1)它似乎沒有連接到任何數據庫。

2)您正在使用mysql_函數,這些函數是being deprecated併爲您打開SQL注入。您應立即停止使用它來編寫新代碼並使用mysqli_PDO函數。

3)您需要追加mysql_error()來捕捉任何可能的錯誤。也許是這樣的:

... 
} else { 
    mysql_error(); 
    } 

4)這是一個實踐差SELECT *。你應該總是指定一個列表。

+0

關於你的觀點3,爲什麼在回顯html代碼時需要使用雙引號? – Nelson

+0

2,5是很好的提示,但都沒有解決問題。 3沒有問題,因爲沒有變數。 4. mysql_error不會捕獲錯誤(你可以通過檢查mysql_query的結果來做到這一點),雖然它有助於找出*錯誤是什麼。讓我們希望它是1. :) – GolezTrol

+0

如果你想要插入你的變量,你需要使用雙引號。否則沒關係。同樣,第2點需要強調*立即*,正如從** mysql_query'離開**一樣。 – tadman

-1

SQL單引號

$query="SELECT * FROM `banner_ad` WHERE `banner_no`='$sn'"; 

切換到PHP單引號

$query="SELECT * FROM 'banner_ad' WHERE 'banner_no'='$sn'"; 
+0

-1。 SQL查詢中的單引號表示字符串文字。由於語法錯誤,您的建議會使查詢失敗。 –