2012-05-29 2 views
2

여기 내가 만든 함수의 :PHP 오류

function get_phurl_option($option) { 
$db_result = mysql_query("SELECT value FROM ".DB_PREFIX."options WHERE option = '$option'") or db_die(__FILE__, __LINE__, mysql_error()); 
$db_row  = mysql_fetch_row($db_result); 
return $db_row[0]; 
} 

이 기능을 사용하는 페이지를 방문에, 그러나, 나는 다음과 같은 오류 얻을 :

File: /usr/home/<removed>/includes/functions.php 
Line: 28 
Message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option = 'shortcode_type'' at line 1 

을 잘 모르겠어요 왜 이렇게 될지, 나는 아포 스트로피, 스피치 마크, 역 따옴표를 시도했는데 어느 것도 효과가없는 것 같습니다. 여기서 문제를 파악할 수 없으므로 도움이 될 것입니다. 지정된 오류가 일반적으로 액세스를 시도하고있는 필드가 유효하지 않거나 MySQL이 예약되어 있음을 의미

+0

변수를 올바르게 탈출하면 많은 오류와 신경을 줄일 수 있습니다. –

+0

$ 옵션의 모양은 무엇입니까? DB_PREFIX가 설정되었다고 가정하면 쿼리 자체는 괜찮아 보입니다 – Ahatius

+2

실행하기 전에 최종 쿼리를 에코하여 ... 문제가있는 곳을 정확히 볼 수 있습니다 ... – Lix

답변

6

옵션은 MySQL은 예약어입니다, 그래서 당신은 역 따옴표

$db_result = mysql_query("SELECT value FROM ".DB_PREFIX."options WHERE `option` = '$option'") 
1

로 묶어야합니다. 당신이 백틱에있는 모든 변수를 빠져 나오는지 확인하십시오 :

SELECT `value` FROM `".DB_PREFIX."options` WHERE `option` = '$option'