大白菜

  • 优惠汇总
  • linux闲谈
  • shell脚本
  • PHP编程
  • nginx
  • 随笔
分享你我
  1. 首页
  2. PHP编程
  3. 正文

php中使用pdo查询数据库 - 不安全

2024年11月15日 314点热度 0人点赞 0条评论

Table of Contents

Toggle
  • 返回值为1
  • 返回值为多个
    • 1.使用fetch循环
    • 2.使用fetchAll方法
  • 设置模式的另外一种方式

实现了pdo连接数据库之后

就可以去实现对数据库的查询了

 

没有占位符的 SQL 可以使用 PDO::query() 执行

这里返回的是PDOStatement

因此可以使用PDOStatement相关方法对结果进行处理

本次为不安全的查询方式,不安全表示会被sql注入

 

返回值为1

使用fetch抓取一个结果

默认的模式为 PDO::FETCH_BOTH

PDO::FETCH_ASSOC表示以键值对的方法反馈数据库查询结果

(除了PDO::FETCH_ASSOC返回键值对 (返回array)

还有FETCH_BOTH既能返回键值对,又返回索引关系 (返回array)

PDO::FETCH_NUM只返回索引关系(返回array)

FETCH_LAZY则会返回一个对象 (返回object)

)

 

<?php
require_once("dbh.php");
$stmt = $pdo->query('SELECT * FROM bmi');
$result = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($result);

 

当然上面的语句实际上并非为1,而是一堆数据则参考如下命令

返回值为多个

1.使用fetch循环

通过添加while循环的方式,同样可以做到对所有结果的返回

<?php
require_once("dbh.php");
$stmt = $pdo->query('SELECT * FROM bmi');
while($result = $stmt->fetch(PDO::FETCH_ASSOC)){
    print_r($result);
}

 

2.使用fetchAll方法

fetchAll使用方法与fetch类似,模式也相同

<?php
require_once("dbh.php");
$stmt = $pdo->query('SELECT * FROM bmi');
$result = $stmt->fetchAll();
print_r($result);
最好对sql语言添加限制,不然会消耗大量流量去获取数据库的信息
与其获取完信息再筛选,不如直接在数据库筛选

设置模式的另外一种方式

<?php
$stmt = $dbh->query('SELECT name, colour, calories FROM fruit');
$stmt->setFetchMode(PDO::FETCH_NUM);

 

如上面代码,完全可以通过setFetchMode预先配置好模式

标签: php
最后更新:2024年11月15日

bai

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2023 年 12 月
  • 2020 年 5 月
  • 2020 年 4 月

jquery LINUX nginx php SSL tls安全 traefik 输入法

  • wordpress抓取缩略图
  • wordpress裁剪缩略图
  • fstab自动挂载防止无法启动
  • web程序请求头安全加固
  • 提升SSL协议安全性
最近评论
一位WordPress评论者 发布于 5 年前(04月03日) 嗨,这是一条评论。 要开始审核、编辑及删除评论,请访问仪表盘的“评论”页面。 评论者头像来自Grav...

COPYRIGHT © 2020-2025 大白菜的博客. ALL RIGHTS RESERVED.

冀ICP备18004313号-1