2009-12-14 95 views
1

我想从MySQL访问一些信息,但得到了警告:mysql_fetch_assoc():提供的参数不是下面第二行代码的有效MySQL结果资源,任何帮助将不胜感激。php警告mysql_fetch_assoc

$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

getmusicfiles()'的定义是什么? – 2009-12-14 15:16:35

+0

getQuery()的定义是什么?有没有在那里调用mysql_query的地方?如果没有,你会得到警告,因为它应该是。 – Piskvor 2009-12-14 15:31:52

+0

是啊有,并且它工作正常,因为我在我的网站中使用了它很多 – 2009-12-14 15:35:18

回答

1

没有看到getmusicfiles的代码,没有很多我们可以真正帮助你。你应该在该函数中返回一个有效的mysql资源。

0

这取决于究竟是什么getmusicfiles() does。它必须返回mysql_query()函数调用的结果,那么它将是“有效的MySQL结果”。

而且您最有可能想要将$mus=mysql_fetch_assoc($musicfiles)一行放入for循环中,以便一个接一个地取出几行。

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_fetch_assoc这不是一个MySQL的结果资源(不管它是一个字符串,对象或布尔)时,函数会抱怨它不知道如何处理参数;这正是你所看到的。

一个常见的问题

$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

正如其他人所指出的那样,你需要返回一个有效的MySQL资源到:如果你传递(有效的查询字符串等)的东西,mysql_query你得到这个警告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)) { 
    ... 
} 
0

我想你需要指定哪些功能getQuery()

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

确实

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

$m_id != $s_id

相关问题