【问题标题】:Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in警告:mysql_num_rows() 期望参数 1 是资源,布尔值在
【发布时间】:2015-01-03 11:56:13
【问题描述】:

我得到这个错误Warning: mysql_num_rows() expects parameter 1 是资源,我的代码中给出的布尔值如下 这里是if(mysql_num_rows($res)>0){
请帮帮我

function getProgramFee(){

        $sql = "SELECT program_merchantid,program_id,program_fee,program_value,program_type FROM partners_program";
        $res = @mysql_query($sql);

        if(mysql_num_rows($res)>0){
           while($row = mysql_fetch_object($res)){
                 $merid         = $row->program_merchantid;
                 $id            = $row->program_id;
                 $prgm_fee      = trim($row->program_fee);
                 $prgm_value    = $row->program_value;
                 $prgm_type     = $row->program_type;

                 if(($prgm_type == "0")){
                     $prgm_fee      = $program_fee;
                     $prgm_value    = $program_value;
                     $prgm_type     = $program_type;
                 }

【问题讨论】:

  • 这段代码是新代码还是旧代码?
  • 先生是附属网站代码gala-travel.com在这里查看先生
  • 这是什么语言?您是否检查过$res 中的内容?
  • 你为什么使用@?是压制警告,主要是一种不好的做法
  • @scott,我猜这是 php。

标签: php mysql


【解决方案1】:

布尔参数是$resmysql_query 出错时返回 FALSE

对于 SELECT、SHOW、DESCRIBE、EXPLAIN 等语句返回 结果集,mysql_query() 在成功时返回资源,或 FALSE 在 错误。

来自http://php.net/manual/en/function.mysql-query.php

所以问题是您的 SQL 查询无效,可能是因为 partners_program 不存在或其中一个字段不存在。

调试问题的一个好的开始是删除mysql_query 前面的@。 @ 抑制所有错误,通常不受欢迎。如果您的 PHP 设置已正确设置以进行调试,那么您应该会收到描述性错误消息。您也可以出于调试目的在mysql_query 之后使用mysql_error() 以获取更多详细信息。

另外,mysql_* 函数已经被弃用了很长时间,所以如果可能的话,您应该查看 pdomysqli 库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多