Home > CMS Tutorial > Empire CMS > body text

Complete the usage of fetch() and fetch1() in the secondary development of Empire CMS in 10 minutes

silencement
Release: 2019-11-28 13:50:30
forward
3398 people have browsed it

Complete the usage of fetch() and fetch1() in the secondary development of Empire CMS in 10 minutes

fetch() and fetch1() are functions commonly used in the secondary development of Imperial CMS. The following introduces the correct writing methods and some uses of fetch() and fetch1():
( Note: The fetch() and fetch1() functions are located in the e/class/db_sql.php file)

1.fetch()

Generally we use it to loop out lists or columns Multiple pieces of information are output; for example, the following example obtains all member IDs and user names whose member group ID is 1; the parameter of fetch() is the result of the SQL statement execution, that is, query() is executed first; and then the execution result of query() is Used as a parameter for fetch();

The code is as follows:

query( "select userid,username from {$dbtbpre}enewsmember where groupid=1" );
while ( $r = $empire ->fetch( $sql )){
echo $r [userid]. '---' . $r [username].'
';
}
db_close();
$empire =null;
Copy after login

It is recommended to study "Empirecms Tutorial"

2.fetch1()

Simply put, we only use it when querying a piece of information, such as obtaining member information with USERID 1; the difference from fetch() is that the parameter of fetch1() is a SQL statement rather than the execution result, so in the SQL statement Just go in directly without using it a second time; fetch1() only takes one piece of data;

The code is as follows:

fetch1("select userid,username from {$dbtbpre}enewsmember where userid=1 limit 1");
echo $r[userid].'
';
echo $r[username].'
';
db_close();
$empire=null;
Copy after login

Let’s discuss it further:

1. When fetching a piece of information, both fetch() and fetch1() are available. The code is as follows:

The code is as follows:

fetch1("select id,title from {$dbtbpre}ecms_news where classid=34");
print_r($r1);
echo &#39;<hr>&#39;;
$sql=$empire->query("select id,title from {$dbtbpre}ecms_news where classid=34");
$r=$empire->fetch($sql);
print_r($r);
echo &#39;<hr>&#39;;
db_close();
$empire=null;
Copy after login

2. If you want to use fech1() to loop the data, you You can test the following code, and you will find that the result is miserable, an endless loop, so close the browser quickly;

The code is as follows:

fetch1("select id,title from {$dbtbpre}ecms_news where classid=34")){
echo $r1[title];
}
db_close();
$empire=null;
Copy after login

3.fetch() is the same dead-end loop writing method ;

The code is as follows:

query("select id,title from {$dbtbpre}ecms_news where classid=341");
$r=$empire->fetch($sql);
while($r)){
echo $r[title].&#39;
&#39;;
}
db_close();
$empire=null;
Copy after login

4.Why. . . ;trylife once said that there is no truth without code, so let’s take a look at the content in the source file: Location: e/class/db_sql.php

The code is as follows:

//执行mysql_fetch_array()
function fetch($sql)//此方法的参数是$sql就是sql语句执行结果
{
$this->r=mysql_fetch_array($sql);
return $this->r;
}
//执行fetch1(mysql_fetch_array())
//此方法与fetch()的区别是:1、此方法的参数是$query就是sql语句
//2、此方法用于while(),for()数据库指针不会自动下移,而fetch()可以自动下移。
function fetch1($query)
{
$this->sql=$this->query($query);
$this->r=mysql_fetch_array($this->sql);
return $this->r;
}
Copy after login

①.See fetch1() There are more lines in the function body than fetch(), "$this->sql=$this->query($query);"; fetch1() executes query() first; so when getting a line of information, just fetch1 directly (), type less code;

②. The infinite loops in 3 and 4 above are PHP writing problems. The while($r=$empire->fetch($query)) function first fetches the query results The first line of content, after which the record pointer automatically moves to the next line; Note: mysql_fetch_array only obtains the first line of data in the query result; mysql_fetch_array() that is not written in the while() brackets can only read the first line of data. , so it’s an infinite loop.

The above is the detailed content of Complete the usage of fetch() and fetch1() in the secondary development of Empire CMS in 10 minutes. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:www.word666.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template