2011-06-21 66 views
1

这是我的代码mysql_result无效资源

function code_exists($code){ 
    $code = mysql_real_escape_string($code); 
    $code_exists = mysql_query("SELECT COUNT('url_id') FROM 'links' WHERE 'code'='$code'"); 
    return (mysql_result($code_exists, 0) == 1) ? true : false; 
} 

它应该检查数据库,以确保$代码是与否 ,但它不断给我同样的错误

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 
/home/codyl/public_html/projects/tests/url/func.inc.php on line 16 

回答

1

由于被沙克蒂说,你在你的SQL

$code_exists = mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'"); 

有一个错误你需要围绕字段名蜱(`)不是单引号。如果查询按预期方式运行,则还应该添加一条语句。

$code_exists = mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'") or die('Error in my query: '. mysql_error()); 

这会杀死你的程序抛出mysql错误。

+0

谢谢你,蜱似乎一直是问题:) – Cody

5

你在mysql查询语法错误尝试这个。

他们不是单引号他们是反引号`

mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'"); 

我建议你应该总是处理MySQL的错误。

你可以重写这样

mysql_query("SELECT COUNT(`url_id`) FROM `links` WHERE `code`='$code'") 
         OR 
       trigger_error(mysql_error()); 
1

您没有赶上从MySQL来当查询失败的错误。使用mysql_error()输出它们,例如像这样:

$code_exists = mysql_query(....); 
if (!$code_exists) 
trigger_error("MySQL error: ".mysql_error(), E_USER_ERROR); 

(使用trigger_error()是这样,当你的网站开始运行,和错误报告被关闭,MySQL的错误是对用户不可见的。)

在这种特定的情况下,使用单引号因为表名无效,所以会出现mySQL语法错误。

你需要使用反引号`或者根本不引用。