2013-03-17 48 views
-2

我遇到了一些麻烦与错误警告:mysql_fetch_assoc():提供的参数不是一个有效的MySQL

警告:mysql_fetch_assoc():提供的参数不是在 其实一个有效的MySQL结果资源,没有全球变量我把所有的查询都放在函数中。

我的查询没问题,没有任何其他地方的字段名称错误。

麻烦的是,当地的一切都很好的工作,当我把它放到网上,它不workd,到处都还给了我一些错误

的家,我有这样的错误:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /web/teamfrancestron/www/lib_php/strongman.php on line 75 

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /web/teamfrancestron/www/lib_php/strongman.php on line 90 

我的用户拥有所有权限的数据库,

这里是我使用的代码: 这里是第一个错误

function fetchAccueil() { 
    $sql = "SELECT 
        `content`, `date_maj`, `id_maj`, `titre` 
      FROM `stg_man_home` 
      WHERE 
        `id` = '1'"; 
    $result = mysql_query($sql); 
    return mysql_fetch_assoc($result); 
} 

还有对其他查询

/** * 魁Fonction VA chercher L'identitéD'UNE personne。 * @参数类型的$ id * @返回类型 */

function fetchIdentity($id) { 
    $input_id = mysql_real_escape_string($id); 
    $query = "SELECT 
         `nom`, `prenom` 
       FROM `stg_man_users` 
       WHERE `id` = '{$input_id}'"; 
    $result = mysql_query($query); 
    return mysql_fetch_assoc($result); 
} 

我真的没有看到名字的Fileds任何错误,我敢肯定,我的疑问是有效的ressources。 (适用于本地,但不适用于服务器)。在PHP 5.4

在其他网页,IM我还是同样的错误帮助

Anykind将非常感激。

+0

其实它是不一样的错误错误,在其他主题如果是关于布尔给出 – 2013-03-17 22:20:23

+0

您的SQL查询似乎没问题。我猜别的东西出了问题,例如连接到数据库等。试着'echo mysql_error()'看看MySQL实际上在抱怨什么 – Hazzit 2013-03-17 22:20:53

+1

WHERE'id' ='1';在这里你要求的是一个字符串,但不是一个整数,可能的原因。 – Jonast92 2013-03-17 22:21:40

回答

0

检查返回值mysql_query。它可以是结果集,也可以是值false。将您的查询更改为

$result = mysql_query($sql) or die(mysql_error()); 

您将立即看到问题。

作为旁注:考虑切换到mysqliPDO,因为mysql_*函数现在已被弃用。

+0

好的谢谢。就是这样。但我不明白,为什么在本地主机使用该语法工作? – 2013-03-17 22:24:44

+0

这基本上是我发表的评论:) – Jonast92 2013-03-17 22:25:04

+0

@StanislasPiotrowski我不知道。我刚刚在我的机器上进行了验证,您说得对。使用'mysql'命令行工具,你可以使用''1'或'1',两者都可以正常工作。 – 2013-03-17 22:30:02

-1

错误消息意味着运行您的查询失败。

测试查询的最简单方法是打开一个phpmyadmin或mysql控制台(具有相同的用户),然后运行此确切查询。

+0

我的查询没问题,在本地工作,在phpmyadmin上工作 – 2013-03-17 22:23:07

+0

你确定我的评论不是可能的原因吗? – Jonast92 2013-03-17 22:23:52

+1

该查询是可以的,但'$ result'似乎不太好。 'mysql_query'应该返回一个资源(结果集或其他),但似乎你没有这样的资源(假而不是?)尝试var_dump你的'$ result' – MatRt 2013-03-17 22:23:55

0

你说

WHERE id = '1' 

做到这一点,而不是(删除单引号):

WHERE id = 1 

这样就要求对整数的比赛,但不是一个字符串。

相关问题