2013-03-09 2 views
0

저는 갤러리 프로젝트에서 작업 해 왔으며이 오류로 인해 정지 상태가되었습니다. 기본적으로 사용자가 image.php? id = 37를 방문하면 행 ID가 url 매개 변수와 같은 이미지 테이블에서 모든 행 정보를 검색합니다. 이 모든 것은 검색되는 실제 이미지 URL, 갤러리 ID 및 이미지 ID에 대해 잘 작동합니다. 나는 이미지 테이블에서 검색된 설명을이 페이지에 통합하려고합니다. 지난 몇 일 동안 성공적으로 수행 했으므로 열을 추가하고 몇 가지 테스트 설명을 입력하고 PHP 페이지에 코드를 추가했습니다.이 오류는 다음과 같습니다.행 검색 오류

쿼리를 실행하지 못했습니다. SQLSTATE [42000] : 구문 오류 또는 액세스 위반 : 1064 SQL 구문에 오류가 있습니다. 올바른 구문이 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. 'desc FROM images WHERE id = 37'5 행에 있습니다.

과거와 다른 것으로 보이는 것이 아무것도 없기 때문에 나는 무엇이 잘못되었는지 보지 않습니다. 시도 : L.

내 image.php 페이지 :

<?php foreach($rows as $row): ?> 
    <div class="image" style="background: url('resources/galleries/images/<?php echo htmlentities($row['url'], ENT_QUOTES, 'UTF-8'); ?>') no-repeat; background-size: 100%; "> 
     <? if(empty($_SESSION['user'])) { } else { print '<div class="image-overlay"><a href="admin/includes/delete-img.php?id=' . $galname . '">Delete</a></div>';}?> 
    </div> 
    <div class="image-info"> 
     <a href="gallery.php?id=<?php echo htmlentities($row['gallery'], ENT_QUOTES, 'UTF-8'); ?>">&larr; Back to Gallery</a> 
     <p class="desc"><? echo htmlentities($row['desc'], ENT_QUOTES, 'UTF-8'); ?></p> 
    </div> 
<?php endforeach; ?>  

그리고 $ 아이디 = $ _GET [ 'ID'] ;:

$query = " 
    SELECT 
     id, 
     url, 
     gallery, 
     desc 
    FROM images 
    WHERE id = $id 
"; 

와 쿼리 된 경우에만 변경의 추가입니다 쿼리의 desc 및 설명을 에코하기 위해 추가 된 PHP. 내 테이블에 여분의 열이 필요하며 어떤 일이 발생했는지 알지 못합니다. 그것은 단순한 실수 일지 모르지만 구문에서 오류를 볼 수는 없습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

1

desc은 SQL의 키워드입니다. 그것을 따옴표로 묶어야합니다. 즉

당신이 당신의 질의 주위 역 따옴표로 열을 구분하지 않으려면 다른 옵션은 테이블에 별칭을 공급하는 것입니다
SELECT 
    id, 
    url, 
    gallery, 
    `desc` 
FROM images 
WHERE id = $id 
+0

모든 이제 작업, 감사합니다! MySQL을 아직 고치기 때문에 나는 좀 더 심도있게 살펴 봐야 할 것이다. –

1

, 예를 들어

SELECT i.id, 
     i.url, 
     i.gallery, 
     i.desc 
FROM images i 
WHERE id = $id