由于需要多次查询数据库,需要建立一个返回查询值的函数,可是总是会返回错误,错误如下:Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in D:\php\website\Web_en\inc\product_list_directory.php on line 16返回错误的16行为:$row=mysql_fetch_row($result_addr);函数代码如下:
function Getparentcode($urlstring,$conn){
$result_addr=mysql_db_query($mysql_database,"select * from product_category where cat_code like '".$searchstring."'",$conn);
$row=mysql_fetch_row($result_addr);
return $row[11];
mysql_free_result($result_addr);
}

解决方案 »

  1.   

    $urlstring这个参数什么用?$searchstring哪里来的?改成$result_addr=mysql_db_query("select * from product_category where cat_code like '%".$urlstring."%'",$conn);试试
      

  2.   

    我改成了如下,还是一样的报错:
    function Getparentcode($urlstring,$conn){
    $result_addr=mysql_db_query($mysql_database,"select * from product_category where cat_code like '".$urlstring."'",$conn);
    $row=mysql_fetch_row($result_addr);
    return $row[11];
    mysql_free_result($result_addr);
    }Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in D:\php\website\Web_en\inc\product_list_directory.php on line 16
      

  3.   


    $mysql_database也没传值,所以肯定有问题,
    mysql_query("select * from product_category where cat_code like '%".$urlstring."%'",$conn);,如果之前选择过数据库或者你加上传值,sql语句也要改一下
      

  4.   

    呵呵,没注意看,只改了一下参数。但是这样下来,问题报错更多了。Warning: mysql_db_query() [function.mysql-db-query]: Access denied for user 'ODBC'@'localhost' (using password: YES) in D:\php\website\Web_en\inc\product_list_directory.php on line 16Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in D:\php\website\Web_en\inc\product_list_directory.php on line 16Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in D:\php\website\Web_en\inc\product_list_directory.php on line 17
      

  5.   

    函数
    function Getparentcode($urlstring,$conn){  //Getparentcode函数参数$urlstring怎么传递的,尽上面的代码没有给出如何使用
      

  6.   

    以下是16,17行的代码
    $result_addr=mysql_db_query("select * from product_category where cat_code like '%".$urlstring."%'",$conn);
    $row=mysql_fetch_row($result_addr);
      

  7.   

    $urlstring只是作为一个改变查询的条件用
      

  8.   

    function Getparentcode($urlstring, $mysql_database, $conn){//参数补齐了,调用时候,要注意
    $result_addr=mysql_db_query($mysql_database,"select * from product_category where cat_code like '%".$urlstring."%'",$conn);
    $row=mysql_fetch_row($result_addr);
    return $row[11];
    mysql_free_result($result_addr);
    }
      

  9.   

    16行
    $result_addr=mysql_db_query($mysql_database,"select * from product_category where cat_code like '%".$urlstring."%'",$conn);
      

  10.   

    return后面的部分,是不执行的函数里的变量,是局部变量,否则请指定为全局,或者入口参数
      

  11.   

    楼上正解,谢谢了。我明白了,PHP的函数要完全申明,跟asp.net一样
      

  12.   

    在开发过程中一定不要自己处理错误信息,因为你不知道会发生什么?
    要充份利用已有的调试机制$result_addr=mysql_db_query($mysql_database,"select * from product_category where cat_code like '".$searchstring."'",$conn) or die(mysql_error());
    式中:$mysql_database、$searchstring 未定义
    可临时声明为全局变量再调试
    global $mysql_database, $searchstring; 
    最终的成品中是不能这样写的
    作为外部变量或传入参数,你都应该检查
    $mysql_database 中的数据库是否存在
    $searchstring 中的特殊符号“'”是否被转义