2012-05-29 4 views
2

est ici la fonction que j'ai créé:erreur PHP MySQL Syntaxe

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]; 
} 

Cependant, lors de sa visite une page qui utilise la fonction, je reçois l'erreur suivante:

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 

Je ne suis pas sûr pourquoi ce serait, j'ai essayé des apostrophes, des marques de discours, et des backticks, aucun de qui semblent fonctionner. Je ne peux pas comprendre le problème ici, donc toute aide serait très appréciée.

+0

Échappez correctement à vos variables, cela vous épargnera beaucoup d'erreurs et de nerfs. –

+0

À quoi ressemble l'option $? La requête elle-même semble correcte, en supposant que DB_PREFIX est défini – Ahatius

+2

Écho de la requête finale avant de l'exécuter ... Cela vous permettra de voir exactement où le problème est ... – Lix

Répondre

6
l'option

est un mot MySQL réservé, vous devez donc l'enfermer dans des accents graves

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

L'erreur spécifiée signifie généralement que le champ que vous essayez d'accéder est invalide ou réservé par MySQL. Assurez-vous d'échapper toutes les variables dans les balbutiements:

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