mysql_fetch_array和mysql_fetch_row之间的区别?

Lio*_*ion 16 php mysql

这对PHP用户来说是一个简单的问题.我无法得到PHP mysql_fetch_array()mysql_fetch_row()PHP 之间的确切区别的原因是我一直在使用Java.


在我在这里发布这个问题之前,我从谷歌得到了一些答案,但我发现它们有点令人困惑.我在互联网上找到的一些链接如下.

答案1

答案2

答案3

答案4


我无法从上面的答案中得到确切的想法.那么它们之间究竟有什么区别呢?

小智 60

许多php编程新手对mysql_fetch_array(),mysql_fetch_row(),mysql_fetch_assoc()和mysql_fetch_object()函数感到困惑,但所有这些函数都执行类似的过程.

让我们创建一个表"tb",用于显示三个字段"id","username"和"password"的清晰示例

表:tb

在表中插入一个新行,其值为1表示id,tobby表示用户名,tobby78 $ 2表示密码

在此输入图像描述

db.php中

<?php
$query=mysql_connect("localhost","root","");
mysql_select_db("tobby",$query);
?>
Run Code Online (Sandbox Code Playgroud)

和mysql_fetch_row()

将结果行作为数字数组获取

<html>
<?php
include('db.php');
$query=mysql_query("select * from tb");
$row=mysql_fetch_row($query);
echo $row[0];
echo $row[1];
echo $row[2];
?>
</html>
Run Code Online (Sandbox Code Playgroud)

结果

1 tobby tobby78 $ 2

mysql_fetch_object()

获取结果行作为对象

<html>
<?php
include('db.php');
$query=mysql_query("select * from tb");
$row=mysql_fetch_object($query);
echo $row->id;
echo $row->username;
echo $row->password;
?>
</html>
Run Code Online (Sandbox Code Playgroud)

结果

1 tobby tobby78 $ 2

mysql_fetch_assoc()

获取结果行作为关联数组

<html>
<?php
include('db.php');
$query=mysql_query("select * from tb");
$row=mysql_fetch_assoc($query);
echo $row['id'];
echo $row['username'];
echo $row['password'];
?>
</html> 
Run Code Online (Sandbox Code Playgroud)

结果

1 tobby tobby78 $ 2

mysql_fetch_array()

获取结果行作为关联数组,数字数组以及它由关联数字和数字数组提取.

<html>
<?php
include('db.php');
$query=mysql_query("select * from tb");
$row=mysql_fetch_array($query);
echo $row['id'];
echo $row['username'];
echo $row['password'];

<span style="color: #993300;">/* here both associative array and numeric array will work. */</span>

echo $row[0];
echo $row[1];
echo $row[2];

?>
</html>
Run Code Online (Sandbox Code Playgroud)

结果

1 tobby tobby78 $ 2

  • 使用示例+1,这是解释某事的最佳方式 (8认同)

azi*_*ani 33

文件是对这个很清楚,你看了吗?

mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )
Run Code Online (Sandbox Code Playgroud)

返回与获取的行对应的字符串数组,如果没有更多行,则返回FALSE.返回数组的类型取决于result_type的定义方式.通过使用MYSQL_BOTH(默认),您将获得一个包含关联索引和数字索引的数组.使用MYSQL_ASSOC,你只获得关联索引(如mysql_fetch_assoc()工作),[by]使用MYSQL_NUM,你只获得数字索引(如mysql_fetch_row()工作).

mysql_fetch_row ( resource $result )
Run Code Online (Sandbox Code Playgroud)

返回与获取的行对应的数字字符串数组,如果没有更多行,则返回FALSE.

mysql_fetch_row()从与指定结果标识符关联的结果中提取一行数据.该行作为数组返回.每个结果列都存储在一个数组偏移量中,从偏移量0开始.

综上所述

mysql_fetch_array( $result, MYSQL_ASSOC )= mysql_fetch_assoc( $result ) mysql_fetch_array( $result, MYSQL_NUM )=mysql_fetch_row( $result )

mysql_fetch_array ( $result )= mysql_fetch_assoc( $result )+mysql_fetch_row( $result )

  • Pacerier,他们是同一个. (2认同)

atj*_*shi 5

mysql_fetch_object {row/array/assoc}()函数以其各自的格式收集第一个匹配记录,并可相应地进行检索.

con.php

<?php
        $host     = $_GET['host'];
        $username = $_GET['username'];
        $pass     = $_GET['pass'];
        $database  = $_GET['database'];
        $connect=new connect($host,$username,$pass,$database);
        class connect{
             function __construct($host,$user,$password,$db_name){
                mysql_connect($host,$user,$password) or die("Connection error");
                mysql_select_db($db_name);
                $error=mysql_error();
                if (!empty($error))
                {
                    echo $error;
                }
            }
        }
        ?>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

的index.php

<?php
$query=mysql_query("select * from category");
?>
Run Code Online (Sandbox Code Playgroud)

在浏览器中转储数组时每个值的显示方式

mysql_fetch_array

$row=mysql_fetch_array($query);
var_dump($row);
Run Code Online (Sandbox Code Playgroud)

输出:

array
  0 => string '1' (length=1)
  'id' => string '1' (length=1)
  1 => string '1' (length=1)
  'createdBy' => string '1' (length=1)
  2 => string 'APTITUDE' (length=8)
  'catName' => string 'APTITUDE' (length=8)
  3 => string 'APTITUDE' (length=8)
  'description' => string 'APTITUDE' (length=8)
  4 => string '1' (length=1)
  'status' => string '1' (length=1)
Run Code Online (Sandbox Code Playgroud)

和mysql_fetch_row

$row=mysql_fetch_row($query);
var_dump($row);
Run Code Online (Sandbox Code Playgroud)

输出:

array
  0 => string '1' (length=1)
  1 => string '1' (length=1)
  2 => string 'APTITUDE' (length=8)
  3 => string 'APTITUDE' (length=8)
  4 => string '1' (length=1)
Run Code Online (Sandbox Code Playgroud)

mysql_fetch_assoc

$row=mysql_fetch_assoc($query);
var_dump($row);
Run Code Online (Sandbox Code Playgroud)

输出:

array
  'id' => string '1' (length=1)
  'createdBy' => string '1' (length=1)
  'catName' => string 'APTITUDE' (length=8)
  'description' => string 'APTITUDE' (length=8)
  'status' => string '1' (length=1)
Run Code Online (Sandbox Code Playgroud)

mysql_fetch_object

$row=mysql_fetch_object($query);
var_dump($row);
Run Code Online (Sandbox Code Playgroud)

输出:

object(stdClass)[2]
  public 'id' => string '1' (length=1)
  public 'createdBy' => string '1' (length=1)
  public 'catName' => string 'APTITUDE' (length=8)
  public 'description' => string 'APTITUDE' (length=8)
  public 'status' => string '1' (length=1)
Run Code Online (Sandbox Code Playgroud)

Rest @Gaurang提供了如何使用out来代码和其他活动.