2017-04-30 1 views
1

나는 웹 사이트를 작성하고 PHP를 사용합니다. ı 작성시MySQL 쿼리 오류 제한

$cat = mysql_query(" 
Select m.Image_link AS link 
    , m.Name 
    , m.ID 
    , c.Name AS catName 
    from movie m 
    join has_category mc 
    on m.ID = mc.movie_id 
    join category c 
    on c.ID = mc.category_id 
where c.Name = '$category' 
ORDER 
    BY ID desc" 
); 

이 쿼리는 모두 괜찮지 만, ı 삽입 제한, ı 오류가 발생합니다.

@$sayfa=$_GET['s']; 

$kacar=12; 
$toplansayfa=ceil(mysql_num_rows($cat)/$kacar); 
$baslangic=($sayfa * $kacar) - $kacar; 


$bul_cat=mysql_query(" 
Select m.Image_link AS link 
    , m.Name 
    , m.ID 
    , c.Name AS catName 
    from movie m 
    join has_category Mc 
    on m.ID = mc.movie_id 
    join category c 
    on c.ID = mc.category_id 
where c.Name = '$category' 
ORDER 
    BY ID desc 
limit $baslangic, $kacar 
"); 


echo mysql_error();-> 

당신은 당신의 SQL 구문에 오류가 있습니다; 올바른 구문을 찾으려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 1시에 '-12, 12'근처에서 사용하십시오.

내 실수는 어디에 있습니까? 귀하의 관심에 감사드립니다.

+1

음의 제한 (또는 오프셋)을 설정할 수 없습니다. 계산을 확인하십시오. 그러나 문제는 '$ sayfa'가 숫자가 아니므로 '0'으로 변환된다는 것입니다. –

+3

새 코드에서 데이터베이스 확장자 ** [mysql_'] (http://stackoverflow.com/questions/12859942/why-shouldnt-use-mysql-functions-in-php)을 사용할 때마다 [ 이 문제가 발생합니다. (https://media.giphy.com/media/kg9t6wEQKV7u8/giphy.gif) ** PHP 7에서는 그 사용이 중단되어 수년간 지속되어 왔습니다. PHP를 배우려는 분이라면'PDO' 또는'mysqli' 데이터베이스 확장과 prepared statement를 배우는 데 많은 시간을 할애하십시오. [여기에서 시작] (http://php.net/manual/en/book.pdo.php) – RiggsFolly

+1

** 경고 ** : PHP를 배우는 분이라면 [mysql_query] (http://php.net/manual/en/function.mysql-query.php) 인터페이스. PHP 7에서 제거 된 것은 너무 무섭고 위험합니다. [PDO는 배우기가 어렵지 않습니다.] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)와 [PHP The Right Way] (http://www.phptherightway.com/)와 같은 가이드가 모범 사례를 설명합니다. 귀하의 사용자 데이터는 ** [적절하게 이스케이프되지 않은] ** (http://bobby-tables.com/php.html)이 아니며 [SQL 주입 버그] (http://bobby-tables.com/)가 있으며 착취 당한다. – tadman

답변

0

많은 SQL 프로그래밍 오류와 마찬가지로 실행하려고 시도한 쿼리의 실제 텍스트를 살펴 보는 것이 좋습니다.

그래서,이 시도 : 당신은 당신이 실행하려고 실제 쿼리를 표시 할 때

$query = "Select movie.Image_link AS link, movie.Name, movie.ID, category.Name AS catName from (movie inner join has_category on movie.ID=has_category.movie_id inner join category on category.ID=has_category.category_id) where category.Name='$category' ORDER BY ID desc limit $baslangic, $kacar"; 

$bul_cat = mysql_query($query); /*deprecated API! */ 
if (!$bul_cat) { 
     echo "query failed: " . $query; 
     echo mysql_error(); /* deprecated API! */ 
} 

당신은 거의 확실 즉시 문제를 발견 할 것이다. Paul Siegel의 진단 내용이 정확하다고 확신합니다 ... 귀하의 질문은 LIMIT -12,12입니다. 너는 그럴 수 없어 ™.

+1

형식 지정이 도움이되는 경우가 있습니다. – Strawberry