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