【问题标题】:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource on line 21警告:mysql_num_rows():提供的参数不是第 21 行的有效 MySQL 结果资源
【发布时间】:2013-01-27 04:16:43
【问题描述】:

好的,下面是我的代码,我尝试使用 var_dumps 对其进行调试 .. var_dump($insertion) 返回通过,这意味着查询插入到数据库中,但由于某种原因,我会收到警告消息我想看看 mysql_num_rows 是否在做它的工作,它返回 FALSE 并带有标题的警告消息。下面是我简短的直接代码

<?php

require'sensdb.php';

if (sensdb_connect()) {

$select = "SELECT SubGroupID from STx WHERE GroupID = '39'AND Status ='Provisioned'";

$result = mysql_query($select);
$result_count = mysql_num_rows($result);

  if($result_count > 0)
   {
       while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {


         if($row['SubGroupID'] != 123) {

        $insert = "INSERT INTO Routes (SubGroupID,GroupID,URL) VALUES (".$row['SubGroupID'].",39,'mailto://e2pressure@gmail.com')";
        $insertion = mysql_query($insert);
        $insertion_count =  mysql_num_rows($insertion); var_dump($insertion_count);
        $select_route_id = "SELECT RouteID FROM Routes WHERE SubGroupID =".$row['SubGroupID']." AND GroupID = 39";
        $result_route_id = mysql_query($select_route_id);
        $result_route_count = mysql_num_rows($result_route_id);
         if($insertion_count > 0 ) {
         if($result_route_count > 0) {
            $row_route = mysql_fetch_array($result_route_id,MYSQL_ASSOC);
             $update = "UPDATE STx SET RouteID =".$row_route['RouteID']." WHERE SubGroupID =".$row['SubGroupID']."";
             var_dump($update);

             }

           }

         }

     }

  }

}

【问题讨论】:

  • 您的查询有误。您需要进行适当的错误检查才能发现此类问题并进行调试。 php.net/mysql_error
  • @Pekka웃 他的SQL可能有错误,但不是这个原因。

标签: mysql sql php-5.2


【解决方案1】:

来自 PHP 文档:

从结果集中检索行数。此命令仅对返回实际结果集的 SELECT 或 SHOW 等语句有效。要检索受 INSERT、UPDATE、REPLACE 或 DELETE 查询影响的行数,请使用 mysql_affected_rows()。

PHP.net

另外,你真的应该使用 PDO(或类似的东西)。

【讨论】:

  • 错误所指的查询似乎是一个 SELECT 查询?
  • 没关系,我应该改用受影响的行函数
猜你喜欢
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 2011-04-24
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多