帝国CMS二次开发之fetch()以及fetch1()怎样用?
fetch()以及fetch1()是帝国CMS二次开发罕用到的函数,上面引见fetch()以及fetch1()正确的写法以及一些用途 :
(注:fetch()以及fetch1()函数位于e/class/db_sql.php文件中)
1.fetch()
普通状况下咱们用来,轮回入列表或许列出多条信息;例以下面的例子获得会员组ID为1的一切会员ID以及用户名;fetch()的参数是SQL语句执行的后果也就是先执行query();再把query()的执行后果作为参数给fetch()应用;
代码以下:
query( "select userid,username from {$dbtbpre}enewsmember where groupid=1" ); while ( $r = $empire ->fetch( $sql )){ echo $r [userid]. '---' . $r [username].' '; } db_close(); $empire =null;
2.fetch1()
简略的说咱们查问一条信息的时分才用它,比方猎取USERID为1的会员材料;以及fetch()没有同的是fetch1()的参数是SQL语句而没有是执行后果,以是正在SQL语句没有第二次应用的状况下间接出来就行了;fetch1()只取一条数据;
代码以下
fetch1("select userid,username from {$dbtbpre}enewsmember where userid=1 limit 1"); echo $r[userid].' '; echo $r[username].' '; db_close(); $empire=null;
进一步探讨一下:
1.正在取一条信息的时分fetch()以及fetch1()都是能够的,代码以下:
代码以下:
fetch1("select id,title from {$dbtbpre}ecms_news where classid=34"); print_r($r1); echo '<hr>'; $sql=$empire->query("select id,title from {$dbtbpre}ecms_news where classid=34"); $r=$empire->fetch($sql); print_r($r); echo '<hr>'; db_close(); $empire=null;
2.假如你想用fech1()轮回数据,你能够测试下上面的代码,你会发现后果凄惨的,死轮回,连忙关阅读器;
代码以下:
fetch1("select id,title from {$dbtbpre}ecms_news where classid=34")){ echo $r1[title]; } db_close(); $empire=null;
3.fetch()一样死翘翘的轮回写法;
代码以下:
query("select id,title from {$dbtbpre}ecms_news where classid=341"); $r=$empire->fetch($sql); while($r)){ echo $r[title].' '; } db_close(); $empire=null;
4.为何呢。。。;trylife曾说过无码无假相,仍是看下源文件中的内容:地位:e/class/db_sql.php
代码以下:
//执行mysql_fetch_array() function fetch($sql)//此办法的参数是$sql就是sql语句执行后果 { $this->r=mysql_fetch_array($sql); return $this->r; } //执行fetch1(mysql_fetch_array()) //此办法与fetch()的区分是:一、此办法的参数是$query就是sql语句 //二、此办法用于while(),for()数据库指针没有会主动下移,而fetch()能够主动下移。 function fetch1($query) { $this->sql=$this->query($query); $this->r=mysql_fetch_array($this->sql); return $this->r; }
①.看到fetch1()函数体内比fetch()多了行”$this->sql=$this->query($query);“;fetch1()先执行了query();以是猎取一行信息的时分,就间接fetch1()吧,少打代码;
②.上边3以及4中的死轮回是PHP的书写成绩,while($r=$empire->fetch($query)) 函数先取查问后果第一行内容,之跋文录指针主动挪动到下一行;注:mysql_fetch_array也就只先获得查问后果第一行数据;没写正在 while()括号内的mysql_fetch_array()那只能不断读第一行数据,以是就死轮回鸟!
以上就是帝国CMS二次开发之fetch()以及fetch1()怎样用的具体内容,更多请存眷资源魔其它相干文章!
标签: 帝国cms 帝国cms教程 帝国cms自学 帝国cms技术