2012-11-30 4 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) being deprecatedmysql_ 함수를 사용 중이며 SQL 주입을 허용합니다. 새 코드를 작성하고 mysqli_ 또는 PDO 기능을 사용하려면 즉시 사용을 중지해야합니다.

3) 가능한 오류를 잡으려면 mysql_error()을 추가해야합니다. 이 같은 아마 뭔가 :

... 
} else { 
    mysql_error(); 
    } 

4)는 SELECT *에 가난한 방법입니다. 항상 열 목록을 지정해야합니다.

+0

당신의 요점에 대해서 3, 왜 html 코드를 반향 할 때 큰 따옴표를 사용해야합니까? – Nelson

+0

2, 5는 좋은 팁이지만 문제도 해결되지 않습니다. 3은 변수가 없기 때문에 문제가되지 않습니다. 4. mysql_error는 에러를 잡아 내지 못합니다 (mysql_query의 결과를 확인하여이를 수행 할 수 있습니다). :) – GolezTrol

+0

변수를 보간하기 위해서는 큰 따옴표를 사용해야합니다. 그렇지 않으면 상관 없습니다. 또한 point 2는 mysql_query로부터 ** away away **에서와 같이 * 즉시 *를 강조 할 필요가있다. – tadman

-1

SQL 단일 지수 PHP 단일 지수에

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

변경

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

-1. SQL 쿼리 내부의 작은 따옴표는 문자열 리터럴을 나타냅니다. 구문 오류로 인해 쿼리가 실패하게됩니다. –