繁体   English   中英

PHP警告mysql_fetch_assoc

[英]php warning mysql_fetch_assoc

我正在尝试从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_ *函数的用法如下:

$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

没有看到getmusicfiles的代码,我们可以提供很多帮助。 您应该在该函数中返回有效的mysql资源。

如其他人所述,您需要将有效的mysql资源返回到mysql_fetch_assoc函数中以检索下一行。 例如:

$sql = "select * from table";

$resultSet = mysql_query($sql) or die("Couldn't query the database.");
echo "Num Rows: " . mysql_num_rows($resultSet);

while ($resultRowArr = mysql_fetch_assoc($resultSet)) {
    ...
}

这取决于getmusicfiles() does确切getmusicfiles() does 它必须返回mysql_query()函数调用的结果,然后将是“有效的MySQL结果”。

而且,您很可能希望将$mus=mysql_fetch_assoc($musicfiles)放在for循环内, for一次又一次地获取几行。

我认为您需要指定什么函数getQuery()

$result=getQuery($music,$l);

确实

 function getmusicfiles($m_id) { $music="select * from music WHERE itemid=".$s_id; 

$m_id != $s_id吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM