Mysql_fetch_assoc():提供的参数不是有效的MySQL结果......

时间:2010-02-02 21:05:53

标签: php sql

  

可能重复:
  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result

我尝试了所有我能想到的东西,但我继续犯这个错误。

Mysql_fetch_assoc():提供的参数不是第41行/ url /中的有效MySQL结果资源

if ( $_POST[submit] == "Submit" )
    {
        $sql="INSERT INTO table (`content`, `userid`, `ttime`) VALUES 
('$_POST[content]', '".$user_id."', '".time()."')";
    $res = mysql_query($sql,$link) or die(mysql_error());
/* (line 41 is the following)*/ 
while($result = mysql_fetch_assoc($res)) {
    } }

我尝试打印出错误(没有错误打印出警告),我尝试更改查询,我能想到的一切。代码工作正常 - 它点击插入,一切都很好,只是出现警告._。'

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您无法从INSERT查询中获取结果。

答案 1 :(得分:1)

您正在尝试从不是SELECT查询的查询中获取数据行。您只能从结果数据集中获取关联的数组。 INSERT查询就是这样做的。

答案 2 :(得分:1)

来自mysql_query()

上的php documentation
  

返回值

     

用于SELECT,SHOW,DESCRIBE,EXPLAIN   和其他声明返回   resultset,mysql_query()返回一个   成功的资源,或FALSE   错误。

     

对于其他类型的SQL语句,   INSERT,UPDATE,DELETE,DROP等,   mysql_query()成功返回TRUE   错误时为FALSE。

     

返回的结果资源应该是   传递给mysql_fetch_array(),和   其他处理功能   结果表,访问返回的   数据

     

使用mysql_num_rows()来了解具体方法   为SELECT返回了许多行   声明或mysql_affected_rows()来   找出受影响的行数   通过DELETE,INSERT,REPLACE或   更新声明。

     

mysql_query()也会失败   如果用户没有,则返回FALSE   访问表的权限   由查询引用。