您好,欢迎访问一九零五行业门户网

php查询数据集的几种方式(mysql

php操作数据集几种方式 一、 mysql_unbuffered_query() 一边查询一边给出结果,不缓存在页面当中,适合大数据处理,使用完成后,就自动销毁数据集. 不能再使用mysql_data_set($result,count)重新定位数据集中游标的启示位置。 mysql_unbuffered_query查询的结
php操作数据集几种方式
一、        mysql_unbuffered_query()
一边查询一边给出结果,不缓存在页面当中,适合大数据处理,使用完成后,就自动销毁数据集.
不能再使用mysql_data_set($result,count)重新定位数据集中游标的启示位置。mysql_unbuffered_query查询的结果集中,类似mysql_fetch_array处理过程中,不可以使用mysql_num_rows获取结果集行数。mysql_unbuffered_query查询的结果集中,类似mysql_fetch_array处理过程完成后,可以使用mysql_num_rows获取结果集行数。之后再次操作使用类似mysql_fetch_array的函数操作数据集,将没有数据集行数为0,将不输出。二、        mysql_query()
查询结果出来全部放在缓存里面,实用于数据量小的方便操作。
类似mysql_fetch_array的函数在操作过程中还是操作完成后,mysql_num_rows都可以获得正确的数据行数。mysql_data_set($result,count)可以在任意位置操作数据集的下表。mysqli_free_result($result);清除内存中的查询集后,同mysql_unbuffered_query()。demo:
列子:标红部分为关键比较代码
1 php 2 3 4 5 /* 6 7 * 连接数据库 8 9 * 固定不变的量,就直接用变量例如$mysql_host,变化的量例如$this->$mysql_dbname,表示当前调用者的dbname 10 11 */ 12 13 14 15 header(content-type:text/html;charset=utf-8); 16 17 18 19 class dbconn{ 20 21 22 23 private $mysql_host;//连接的主机 24 25 private $mysql_user; 26 27 public $mysql_pwd; 28 29 private $mysql_language;//数据库编码语言 30 31 private $mysql_conn;//mysql连接对象 32 33 private $db_select; //选择的数据库对象 34 35 36 37 public $mysql_dbname;//选择要连接的数据库 38 39 public $sqlstr;//sql语句 40 41 public $error;//错误信息提示 42 43 44 45 function dbconn(){ 46 47 $this->mysql_host =localhost; 48 49 $this->mysql_user=root; 50 51 $this->mysql_pwd=sasa; 52 53 $this->mysql_language=utf8; 54 55 $this->mysql_conn=null; 56 57 $this->db_select=null; 58 59 $this->sqlstr=; 60 61 62 63 } 64 65 66 67 //设置错误信息 68 69 private function seterror($errormsg) 70 71 { 72 73 $this->error+=+$errormsg; 74 75 } 76 77 78 79 public function showerror() 80 81 { 82 83 return $this->error; 84 85 } 86 87 88 89 90 91 //连接mysql 92 93 public function connect() 94 95 { 96 97 $this->mysql_conn = mysql_connect($this->mysql_host, $this->mysql_user,$this->mysql_pwd) or die(mysql连接错误); //mysql连接 98 99 $this->seterror(mysql_error());100 101 //选择连接的数据库名102 103 $this->db_select = mysql_select_db($this->mysql_dbname) or die(数据库无权限或数据库选择错误);104 105 $this->seterror(mysql_error());106 107 mysql_query(set names 'utf8'); //编码转化108 109 }110 111 112 113 //关闭连接114 115 public function closecon()116 117 {118 119 mysql_close($this->mysql_conn);120 121 }122 123 124 125 //查询方法126 127 public function selectall()128 129 {130 131 $result = mysql_query($this->sqlstr,$this->mysql_conn);132 133 if($result)134 135 {136 137 // $result_row = mysqli_fetch_array($result);138 139 // mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 false。140 141 // mysql_fetch_array() 将返回结果集中的键值或者数组,如果没有更多行则返回 false。142 143 while($result_row= mysql_fetch_array($result))144 145 {146 147 $userid=$result_row[userid];148 149 $username=$result_row[username];150 151 $userpwd=$result_row[userpwd];152 153 $useremail=$result_row[useremail];154 155 156 157 echo ;158 159 echo 用户名id: $userid ;160 161 echo 用户名: $username ;162 163 echo 密码: $userpwd ;164 165 echo 邮箱: $useremail ;166 167 echo
;168 169 echo ;170 171 172 173 //mysqli_free_result($result);清除内存中的查询集174 175 }176 177 }178 179 }180 181 182 183 //大数据查询验证两种查询数据集的区别184 185 public function select()186 187 {188 189 //分别取消 mysql_unbuffered_query和mysql_query查看效果190 191 $result = mysql_unbuffered_query($this->sqlstr, $this->mysql_conn);192 193 //$result = mysql_query($this->sqlstr, $this->mysql_conn);194 195 196 197 if($result)198 199 {200 201 // $result_row = mysqli_fetch_array($result);202 203 // mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 false。204 205 // mysql_fetch_array() 将返回结果集中的键值或者数组,如果没有更多行则返回 false。206 207 while($result_row= mysql_fetch_array($result))208 209 {210 211 $userid=$result_row[userid];212 213 $username=$result_row[username];214 215 $userpwd=$result_row[userpwd];216 217 $useremail=$result_row[useremail];218 219 220 221 echo ;222 223 echo 用户名id: $userid ;224 225 echo 用户名: $username ;226 227 echo 密码: $userpwd ;228 229 echo 邮箱: $useremail ;230 231 echo
;232 233 echo ;234 235 echo 处理过程中数据集总行数获取:;236 237 //mysql_unbuffered_query查询的结果集中,mysql_fetch_array处理过程中,不可以使用mysql_num_rows获取结果集行数238 239 echo mysql_num_rows($result);240 241 echo ;242 243 244 245 }246 247 mysql_data_seek($result,1);//把指针指向数据集最开始248 249 //mysql_unbuffered_query查询的结果集中,mysql_fetch_array处理过程完成后,可以使用mysql_num_rows获取结果集行数250 251 echo 处理完成后,数据集总行数获取:;252 253 echo mysql_num_rows($result);254 255 echo ;256 257 258 259 260 261 //再次操作mysql_unbuffered_query查询的结果集,数据集为空不输出262 263 while($result_row= mysql_fetch_array($result))264 265 {266 267 $userid=$result_row[userid];268 269 $username=$result_row[username];270 271 $userpwd=$result_row[userpwd];272 273 $useremail=$result_row[useremail];274 275 276 277 echo ;278 279 echo 用户名id: $userid ;280 281 echo 用户名: $username ;282 283 echo 密码: $userpwd ;284 285 echo 邮箱: $useremail ;286 287 echo
;288 289 echo ;290 291 292 293 //mysqli_free_result($result);清除内存中的查询集294 295 }296 297 echo 再次处理后行数为:;298 299 echo mysql_num_rows($result);300 301 mysql_free_result($result);302 303 304 305 }
306}
307 }
第一次写博客,希望大家多批评指正,另求php操作数据库的优秀框架,我刚从.net转为php很多不懂的,希望能得到更多的信息
其它类似信息

推荐信息