对MySQL数据库执行一条SQL语句(处理获取到的结果)

版权声明:转载请附上文章地址 https://blog.csdn.net/weixin_38134491/article/details/86815482

对数据库执行一条SQL语句

1. 对于insert,update,delete等不会返回数据的SQL语句,在执行没有错误时返回true

2. 对于返回数据的SQL语句执行成功的时间会返回结果集对象,可以使用操作结果集对象的函数获取数据

(比如select语句就能返回结果)

$result=mysqli_query($link, $query);
<?php
header('Content-type:text/html;charse=utf-8');
/* 与MySQL数据库建立连接 */
$link=@mysqli_connect('localhost','root','123456','',3306);
/* 连接错误时的提示 */
if(mysqli_connect_errno()){     /* 返回最后一次连接调用的错误代码 */
    exit(mysqli_connect_error());   /* 返回一个字符串描述的最后一次连接调用的错误代码 */
}

/* 设置默认字符编码 */
mysqli_set_charset($link, 'utf8');

/* 选择特定的数据库 */
mysqli_select_db($link, 'd14');

/* 对数据库执行一条SQL语句 */
//$query='insert into t1(info) values("ROBIN,Ltesoft,Ltesoft.com")';  /* 插入一条记录 */
$query='select * from t1';
$result=mysqli_query($link, $query);   /* 获取select查询的结果 */
var_dump(mysqli_num_rows($result));

/* 关闭与MySQL服务器的连接 */
mysqli_close($link);

操作结果集对象的函数

  • 以索引数组的方式获取第一条记录的数据 (重复使用可以获取下一条数据)
var_dump(mysqli_fetch_row($result));

如果记录条数比较多可以用个循环输出:

/* 对数据库执行一条SQL语句 */
//$query='insert into t1(info) values("ROBIN,Ltesoft,Ltesoft.com")';  /* 插入一条记录 */
$query='select * from t1';
$result=mysqli_query($link, $query);   /* 获取select查询的结果 */
while ($data=mysqli_fetch_row($result)){
    var_dump($data);
}

  • 以关联数组的方式获取第一条记录的数据
var_dump(mysqli_fetch_assoc($result));

  • 以索引数组或关联数组的方式获取第一条记录的数据 
var_dump(mysqli_fetch_array($result));

  • 以索引数组或关联数组的方式获取全部记录的数据 
/* 第二个参数可选值:
 * MYSQLI_ASSOC 关联数组形式
 * MYSQLI_NUM   索引数组形式
 * MYSQLI_BOTH  既输出关联数组形式又输出索引数组形式
 */
var_dump(mysqli_fetch_all($result,MYSQLI_BOTH));

  • 把表中第一个字段以对象的方式列出来,不管你有多少条记录,只把字段列出来
/* 返回的结果是一个对象,用输出对象的方法获取值 */
var_dump(mysqli_fetch_field($result));

那么想取对象中的值怎么办?

  • 把表中所有字段以对象的方式列出来,不管你有多少条记录,只把字段列出来(返回的结果是一个数组)
$query='select * from t1';
$result=mysqli_query($link, $query);   /* 获取select查询的结果 */
var_dump(mysqli_fetch_fields($result));
$fileds=mysqli_fetch_fields($result);
echo $fileds[0]->name;

  • 获取结果中行的数量
$query='select * from t1';
$result=mysqli_query($link, $query);   /* 获取select查询的结果 */
var_dump(mysqli_num_rows($result));

释放一个结果集相关的内容

返回的结果集在数量很大的时候需要很多的内存支持,所以再操作完一个结果集有必要释放内存,释放之后结果集就不能再用了

mysqli_free_result($result);

猜你喜欢

转载自blog.csdn.net/weixin_38134491/article/details/86815482
今日推荐