2-3. 处理执行SQL语句后获取的数据集

1. 对数据库执行一条SQL语句:

mixed:mysqli_query(mysqli $link, string $query, int $resultmode=MYSQLI_STORE_RESULT); 

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

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

$query="insert into t1(info) values('ROBIN,Hello world!')";
var_dump(mysqli_query($link,$query)); //boolean true

 

2. 操作结果集对象的函数

 

1)以索引数组的方式获取第一条记录的数据:

mixed:mysqli_fetch_row(mysqli_result $result);

重复使用可以获取下一条记录的数据

$query='select * from t1';
$result=mysqli_query($link,$query);
while($data=mysqli_fetch_row($result)){
    var_dump($data);
}

 

2)以关联数组的方式获取第一条记录的数据

array:mysqli_fetch_assoc(mysqli_result $result);

重复使用可以获取下一条记录的数据

$query='select * from t1';
$result=mysqli_query($link,$query);
while($data=mysqli_fetch_assoc($result)){
    var_dump($data);
}

 

3)以索引数组或关联数组的方式获取第一条记录的数据 

mixed:mysqli_fetch_array(mysqli_result $result, int $resulttype=MYSQLI_BOTH);

这个函数不怎么用 ,重复使用可以获取下一条记录的数据

 

4)以索引数组或关联数组的方式获取全部记录的数据 

mixed:mysqli_fetch_all(mysqli_result $result, MYSQL_ASSOC);  

第二个参数可选:MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH

$query='select * from t1';
$result=mysqli_query($link,$query);
var_dump(mysqli_fetch_all($result,MYSQL_ASSOC));

 

5)返回结果集中下一个字段的信息

object:mysqli_fetch_field(mysqli_result $result);

$query='select * from t1';
$result=mysqli_query($link,$query);
var_dump(mysqli_fetch_field($result)); //id
var_dump(mysqli_fetch_field($result)); //info

 

6)返回一个代表结果集字段的对象数组

array:mysqli_fetch_fields(mysqli_result $result);

 

7)获取结果中行的数量

int:mysqli_num_rows(mysqli_result $result);

$query='select * from t1 limit 2';
$result=mysqli_query($link,$query);
var_dump(mysqli_num_rows($result));

 

注意:如果使用MYSQLI_USE_RESULT模式则必须在获取完所有的结果才可以使用该函数

 

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

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

mysqli_free_result($result);

 

3. 其他常用函数

 

1)获取前一个MySQL操作受影响的函数

int:mysqli_affected_rows(mysqli $link);

$query="update t1 set info='ROBIN' where id=1";
if (mysqli_query($link,$query)){
    var_dump(mysqli_affected_rows($link));
}

 

2)返回最后一次操作自动生成并使用的id

mixed:mysqli_insert_id(mysqli $link);

$query="insert into t1(info) values('ROBIN')";
if (mysqli_query($link,$query)){
    var_dump(mysqli_insert_id($link));
}

 

3)转义用于SQL语句中的特殊字符防止SQL语句出错

string:mysql_real_escape_string(mysqli $link, string $escapestr);

$str=<<<A
 "We will go on 'a ''trip tomorrow" Tom said.
A;
$str=mysqli_real_escape_string($link,$str);
$query="insert into t1(info) values('{$str}')";

if (mysqli_query($link,$query)){
    var_dump(mysqli_insert_id($link));
}
else{
    var_dump(mysqli_error($link));
}
//int 37

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值