对于当SQL语句为select、update、insert或delete时,在使用了下面的代码执行后,代码中的$result会返回什么数据?$db=db_connect();//建立数据库链接
$sql='.....';
$result=$db->query($sql);

解决方案 »

  1.   

    var_dump($result)正确执行了语句,返回资源标识符,否则会返回false
      

  2.   

    这要看你使用的是什么数据库接口,一般来说query的返回值是一个资源标识符指向数据库查询的结果数据。
      

  3.   

    mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。 mysqli_query()如果成功则返回 TRUE,失败则返回 FALSE。 对于 SELECT, SHOW, DESCRIBE 或 EXPLAIN mysqli_query() 将返回 result object. 你的query又是什么??
      

  4.   

    一般不关注会返回什么,因为返回的一般是TRUE 或者 FALSE。一般关注的是 UPDATE,DELETE,INSERT 用 mysql_affected_rows() 来确定是否响应了数据的。
    而SELECT是用的是mysql_num_rows() 来确定响应了多少条数据的。
      

  5.   

    有个细节问题不知道你是否关注过,affected_rows是从$db返回的,而num_rows是从$result返回的。
      

  6.   

    这不是从手册里copy出来的吗,仁兄都没翻过手册?
      

  7.   

    如果正确执行的话会返回资源标识符,也就是所影响的行数。。如果错误的话会返回flase。。
      

  8.   

    不知道,你自己查看代码。
    因为 db_connect 是指定义函数,并且他返回一个数据库操作类的实例
      

  9.   

    总结一下,原来,通过$result=$db->query()得到的返回值$result,只能通过if(!$result)来判断语句执行是否成功,而不能通过$result来判断查询是否有结果。
    手册那位兄弟可以提供一下,我查过很多地方,都没有明确的答案。
      

  10.   

    总结一下,原来,通过$result=$db->query()得到的返回值$result,只能通过if(!$result)来判断语句执行是否成功,而不能通过$result来判断查询是否有结果。
    手册那位兄弟可以提供一下,我查过很多地方,都没有明确的答案。