在之前的文章中给大家带来了《PHP中mysqli_select_db与mysqli_query函数的用法》,其中给大家详细的介绍了应该怎样使用者两个函数以及他们的主要作用,本篇我们继续来看一下PHP中怎样获取SQL的查询结果。希望对大家有帮助!
在上一篇文章中讲到了要如何执行一条SQL语句,也就是调用mysqli_query()
函数,通过该函数我们已经能够查询到数据库的信息了,但是在我们的日常开发中还是需要对这一个结果进行处理才能够得到我们想要的信息。那接下来我们就看一下PHP中处理结果常用的几个函数吧。
mysqli_fetch_row()
函数
mysqli_fetch_row() 函数可以从结果集中取得一行,并以索引数组的形式返回,其语法格式如下:
mysqli_result::fetch_row()
登录后复制
这是面向对象的写法,面向过程的写法如下:
mysqli_fetch_row(mysqli_result $result)
登录后复制
其中需要注意的是: mysqli_result
和 $result
表示为使用 mysqli_query() 函数获取的结果集。
接下来我们通过示例来看一下mysqli_fetch_row() 函数的用法,示例如下:
<?php
$host = 'localhost';
$username = 'root';
$password = 'root';
$dbname = 'test';
$mysql = new Mysqli($host, $username, $password, $dbname);
if($mysql -> connect_errno){
die('数据库连接失败:'.$mysql->connect_errno);
}else{
$sql = 'select name,sex,age from user'; // SQL 语句
$result = $mysql -> query($sql); // 执行上面的 SQL 语句
$data = $result -> fetch_row();
$mysql -> close();
}
echo '<pre>';
print_r($data);
?>
登录后复制
输出结果:
上述示例中,通过mysqli_fetch_row() 函数成功查询到了数据库中的其中一行数据,并且是以索引数组的方式返回的。那接下来我们看一下不同的返回形式。
mysqli_fetch_assoc()
函数
mysqli_fetch_assoc() 函数可以从结果集中取得一行,并以关联数组的形式返回,该函数的语法格式如下:
mysqli_result::fetch_assoc()
登录后复制
这是其面向对象的语法格式写法,下面是起面向过程语法格式的写法:
mysqli_fetch_assoc(mysqli_result $result)
登录后复制
其中需要注意的是: mysqli_result
和 $result
表示为使用 mysqli_query() 函数获取的结果集。
接下来我们通过示例来看一下mysqli_fetch_assoc() 函数的使用,示例如下:
<?php
$host = 'localhost';
$username = 'root';
$password = 'root';
$dbname = 'test';
$link = @mysqli_connect($host, $username, $password, $dbname);
if($link){
$sql = 'select name,sex,age from user'; // SQL 语句
$result = mysqli_query($link, $sql); // 执行 SQL 语句,并返回结果
$data = mysqli_fetch_assoc($result); // 从结果集中获取一条数据
mysqli_close($link);
}else{
echo '数据库连接失败!';
}
echo '<pre>';
print_r($data);
?>
登录后复制
输出结果:
由上述示例,我们通过mysqli_fetch_assoc() 函数成功的获取了数据库中的一行信息并且通过关联数组的方式返回。我们也可以通过函数来控住返回数据的形式,让它可以是索引数组也可以是关联数组或者两者兼顾的形式,这时候我们就要用到mysqli_fetch_array() 函数。
mysqli_fetch_array()
函数
mysqli_fetch_array() 函数可以从结果集中取得一行,并根据参数以关联数组、索引数组或二者兼有的形式返回,它的语法格式如下:
mysqli_result::fetch_array([int $resulttype = MYSQLI_BOTH])
登录后复制
这是面向对象的语法方式,下面是面向过程的语法方式:
mysqli_fetch_array(mysqli_result $result[, int $resulttype = MYSQLI_BOTH])
登录后复制
其中需要注意的是:
mysqli_result
和$result
表示为使用 mysqli_query() 函数获取的结果集。$resulttype
为可选参数,它是一个常量,用来设定返回值的类型,它的取值可以是MYSQLI_ASSOC
、MYSQLI_NUM
或MYSQLI_BOTH
表示返回值的不同类型。
接下来我们通过示例来看一下mysqli_fetch_array() 函数的用法,示例如下:
<?php
$host = 'localhost';
$username = 'root';
$password = 'root';
$dbname = 'test';
$link = @mysqli_connect($host, $username, $password, $dbname);
if($link){
$sql = 'select name,sex,age from user'; // SQL 语句
$result = mysqli_query($link, $sql); // 执行 SQL 语句,并返回结果
$data = mysqli_fetch_array($result, MYSQLI_ASSOC);// 从结果集中获取所有数据
mysqli_close($link);
}else{
echo '数据库连接失败!';
}
echo '<pre>';
print_r($data);
?>
登录后复制
输出结果:
上述示例中,我们选择了通过关联数组的形式来返回数据,我们通过mysqli_fetch_array() 函数可以选择返回值的不同类型。
mysqli_fetch_all()
函数
mysqli_fetch_all() 函数可以获取结果集中的所有数据,并根据参数以关联数组、索引数组或二者兼有的形式返回,它的语法格式如下:
mysqli_result::fetch_all([int $resulttype = MYSQLI_NUM])
登录后复制
这是面向对象的写法,下面是面向过程的写法:
mysqli_fetch_all(mysqli_result $result [, int $resulttype = MYSQLI_NUM])
登录后复制
其中需要注意的是:与mysqli_fetch_array() 函数的语法相同
mysqli_resul
t和$result
表示为使用 mysqli_query() 函数获取的结果集。$resulttype
为可选参数,它是一个常量,用来设定返回值的类型,它的取值可以是MYSQLI_ASSOC
、MYSQLI_NUM
或MYSQLI_BOTH
表示返回值的不同类型。
接下来通过示例来看一下mysqli_fetch_all() 函数的使用,示例如下:
<?php
$host = 'localhost';
$username = 'root';
$password = 'root';
$dbname = 'test';
$mysql = new Mysqli($host, $username, $password, $dbname);
if($mysql -> connect_errno){
die('数据库连接失败:'.$mysql->connect_errno);
}else{
$sql = 'select name,sex,age from user'; // SQL 语句
$result = $mysql -> query($sql); // 执行上面的 SQL 语句
$data = $result -> fetch_all(MYSQLI_ASSOC);
$mysql -> close();
}
echo '<pre>';
print_r($data);
?>
登录后复制
输出结果:
上述示例中,便是通过mysqli_fetch_all() 函数选择以关联数组的形式返回所有的数据。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上就是PHP中获取SQL的查询结果的常用函数整理(实例详解)的详细内容,更多请关注悠悠之家其它相关文章!
发表评论 取消回复