Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL语法中的PHP错误_Php_Mysql_Function_Syntax - Fatal编程技术网

MySQL语法中的PHP错误

MySQL语法中的PHP错误,php,mysql,function,syntax,Php,Mysql,Function,Syntax,以下是我创建的函数: 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

以下是我创建的函数:

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
文件:/usr/home//includes/functions.php
电话号码:28
消息:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“option=”shortcode_type“”附近使用的正确语法

我不知道为什么会这样,我试过撇号、语音标记和反勾号,这两种方法似乎都不管用。我无法在这里找出问题所在,因此非常感谢您的帮助。

选项是MySQL保留字,因此您需要将其括在反勾中

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

指定的错误通常意味着您试图访问的字段无效或由MySQL保留。确保在反勾号中转义所有变量:

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

正确地转义你的变量,它会帮你省去很多错误和紧张。$option看起来像什么?查询本身看起来很好,假设设置了DB_PREFIX,则在执行它之前回显最终查询。。。这将使您能够准确地看到问题所在……请停止使用古老的
mysql.*
函数编写新代码。它们不再得到维护,社区已开始恢复。相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果你想学习。