我正在尝试从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;
}
答案 0 :(得分:5)
通常,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
答案 1 :(得分:1)
如果没有看到getmusicfiles的代码,我们就无法帮助您。您应该在该函数中返回一个有效的mysql资源。
答案 2 :(得分:1)
正如其他人所说,您需要将有效的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)) {
...
}
答案 3 :(得分:0)
这取决于究竟是什么getmusicfiles() does
。它必须返回mysql_query()
函数调用的结果,然后它将是“有效的MySQL结果”。
你很可能想把$mus=mysql_fetch_assoc($musicfiles)
行放在for
周期内,一个接一个地获取几行。
答案 4 :(得分:0)
我认为您需要指定函数getQuery()
$result=getQuery($music,$l);
确实
答案 5 :(得分:0)
function getmusicfiles($m_id) { $music="select * from music WHERE itemid=".$s_id;
$m_id != $s_id
?