PHP access to the database from MySQL and obtain data, the process of obtaining results using several similar methods, the difference and usage is worth distinguishing, look at the following code
Analysis:
1.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]. ";} There is no value for $row[' CID ' here.
2.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.
3.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. ";}
4.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 as: Array mysql_fetch_array (resource result [, int result_type]), which returns an array based on the rows obtained from the result set. Returns FALSE if there are no more rows. The optional second parameter in Mysql_fetch_array (), result_type, is a constant that can accept the following values:
MYSQL_ASSOC,
Mysql_num,
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 terms of the sentence $row = $db->fetch_array ($query), $DB is from the database operation class, $db->fetch_array ($query), Fetch_array ($query) is the method in that DB class, $ row = $db->fetch_array ($query) means that a row of records in the database is obtained from the recordset $query. No class can be implemented like this to copy code code as follows:
[Email Protected]_connect ($host, $user, $pass); @mysql_select_db ($database, $conn); $query =mysql_query ($sql); while ($row =mysql_fetch_array ($query)) {$rows []= $row;}
In general I like to use mysql_fetch_object because he returns an object. $row->title than. $row [0],. $row [' title '] clearer.
The difference between MYSQL_FETCH_ROW,MYSQL_FETCH_ARRAY,MYSQL_FETCH_OBJECT,MYSQL_FETCH_ASSOC!