关于runSql()函数

#1 zhijiangch

我要实现一个查找用户表中最大编号的功能,代码如下:$user = spClass("user");
//查找最大编号
$sql = "select max(userid) from user";                  
if($max = $user->runSql($sql)){                
        $userid = (int)$max[0][0];
}else{
        $userid = 10001;
}

echo $userid;

执行结果:Resource id 17;
与想要的结果不符;

后来我又写了一个函数:
/**
  * 功能:数据库查询函数
  * 参数:$sql--SQL语句
  * 返回:二维数组或false
  */

public function select($sql = ""){                
                if(empty($sql)) return false;
                $result = mysql_query($sql);                
                if((!$result) or (empty($result))){
                        @mysql_free_result($result);
                        return false;
                }

                $count = 0;
                $data  = array();
                while($row = @mysql_fetch_array($result)){
                        $data[$count] = $row;
                        $count++;
                }
                @mysql_free_result($result);
                return $data;
    }


将runSql()替换为select()得到了想要的结果;

说这么多我是想说,如果执行类似这样的操作,用默认函数如何实现?

2015-10-16 19:40:34

#2 jake

query函数,建议是花点时间看看手册

2015-10-16 22:43:56

#3 冈刀飞絮

你这种情况 用findSql 返回的是数组
query 是 runSql 的别名函数 一般用来执行曾 删 改的
返回的是 Resource   如果要用 那也要先
while($rows[] = mssql_fetch_array($result,MSSQL_ASSOC)){}
                mssql_free_result($result);
                array_pop($rows);
                return $rows;

2015-10-16 23:54:02