我正试图从mysql访问一些信息,但收到警告:mysql_fetch_assoc():提供的参数不是下面第二行代码的有效mysql结果资源,请提供帮助。

$musicfiles=getmusicfiles($records['m_id']);
$mus=mysql_fetch_assoc($musicfiles);
for($j=0;$j<2;$j++)
{
 if(file_exists($mus['musicpath']))
 {
  echo '<a href="'.$mus['musicpath'].'">'.$mus['musicname'].'</a>';
 }
 else
 {
  echo 'Hello world';
 }
}

function getmusicfiles($m_id)
{
$music="select * from music WHERE itemid=".$s_id;
$result=getQuery($music,$l);
return $result;
}

最佳答案

通常,mysql_u*函数的用法如下:

$id = 1234;
$query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
// $query is a string with the MySQL query
$resource = mysql_query($query);
// $resource is a *MySQL result resource* - a mere link to the result set
while ($row = mysql_fetch_assoc($resource)) {
    // $row is an associative array from the result set
    print_r($row);
    // do something with $row
}

如果将不是mysql结果资源(无论是字符串、对象还是布尔值)的内容传递给mysql fetch assoc,函数将抱怨它不知道如何处理参数;这正是您看到的。
一个常见的问题是:如果向mysql_query传递某些内容(而不是有效的查询字符串),则会收到此警告:
$id = null;
$query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
$res = mysql_query($query);
// $res === FALSE because the query was invalid
// ( "SELECT name, genre FROM sometable WHERE id=" is not a valid query )
mysql_fetch_assoc($res);
// Warning: don't know what to do with FALSE, as it's not a MySQL result resource

07-26 00:00
查看更多