The difference between Array_slice Mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc

Source: Internet
Author: User
Copy CodeThe code is as follows:


$link =mysql_connect (' localhost ', ' root ', ');
mysql_select_db (' abc ', $link);
$sql = "SELECT * from book";
$result = mysql_query ($sql);
while ($row = Mysql_fetch_row ($result))
{
echo $row [' CID ']. ':: '. $row [1]. '
';
}
$result = mysql_query ($sql);
while ($row = Mysql_fetch_array ($result))
{
echo $row [' CID ']. ':: '. $row [1]. '
';
}
$result = mysql_query ($sql);
while ($row = Mysql_fetch_object ($result))
{
echo $row->cid. ':: '. $row->title. "
”;
}
$result = mysql_query ($sql);
while ($row = Mysql_fetch_assoc ($result))
{
echo $row [' CID ']. ':: '. $row [1]. '
';
}
?>


Analysis:
Mysql_fetch_row, this function takes a row from the result set as the enumeration data, obtains a row of data from the result set associated with the specified result identity, and returns it as an array. Each result column is stored in an array of cells, with an offset starting at 0. Note that this is offset from 0, that is, you cannot use the field name to take the value, you can only use the index to take the value, so the following code does not take the value:
while ($row = Mysql_fetch_row ($res)) {
echo $row [' CID ']. ':: '. $row [1]. ";
}//The $row[' CID ' here does not take a value.
Mysql_fetch_array, a row is taken from the result set as an associative array, or as a numeric array, or both, in addition to storing the data in a numeric index in an array, you can also store the data as an associated index, using the field name as the key name. That means he gets the results like an array, you can use a key or an index to take a value, so
while ($row = Mysql_fetch_array ($res)) {
echo $row [' CID ']. ':: '. $row [1]. ";
}//here $row[' CID '], $row [1] can get the corresponding value.
Mysql_fetch_object, as the name implies, takes a row from the result set as an object, and the field name as a property. So it's the only way to get the value.
while ($row = Mysql_fetch_object ($res)) {
echo $row->cid ':: '. $row->title. ";
}
MYSQL_FETCH_ASSOC, take a row from the result set as an associative array, that is, this function can not be used as mysql_fetch_row as the index to take the value, only with the field name to fetch, so
while ($row = Mysql_fetch_assoc ($res)) {
echo $row [' CID ']. ':: '. $row [1]. ";
}//$row [1] This is not a value
Add one point:
The Mysql_fetch_array function is defined in this way: array mysql_fetch_array (resource result [, int result_type]), returns an array based on the rows obtained from the result set, and returns if there are no more rows FALSE.
The optional second parameter in Mysql_fetch_array (), result_type, is a constant that can accept the following values: Mysql_assoc,mysql_num and Mysql_both. which
1, Mysql_fetch_assoc ($result) ==mysql_fetch_array ($result, MYSQL_ASSOC);
2, Mysql_fetch_row ($result) ==mysql_fetch_array ($result, mysql_num);
So the mysql_fetch_array () function is, to some extent, a collection of mysql_fetch_row () and Mysql_fetch_assoc (). In addition, Mysql_fetch_array () also has the Mysql_both parameter, which will get an array that contains both associative and numeric indexes.
In the words $row = $db->fetch_array ($query);
$DB is a human database operation class, $db->fetch_array ($query), Fetch_array ($query) is the method in the DB class, $row = $db->fetch_array ($query) This means that a row of records in the database is obtained from the recordset $query.
No class can be implemented like this

Copy the Code code as follows:


$c
@mysql_select_db ($database, $conn);
$query =mysql_query ($sql);
while ($row =mysql_fetch_array ($query)) {
$rows []= $row;
}

The above describes the difference between the Array_slice Mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc, including the array_slice aspects of the content, I hope that the PHP tutorial interested in a friend helpful.

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.