首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php如何判断SQL语句查询结果是否

PHP与mysql这对黄金搭档配合相当默契,但偶尔也会遇到一些小需求不知道该怎么做,例如今天要谈到:如何判断sql语句查询结果集是否!...我们以查询学生信息例,来看看究竟如何实现我们需求。...2  李四     男    15  18    2 3  王美丽    女    16  17    5 我们来看看sql查询功能代码,我们要将年龄16岁学生信息都查出来; 以上便是查询功能,当结果集不为时,一切正常,当数据集时,会得到一个空白ul标签, 作为使用者却不知道为什么没有得到数据,此时我们需要给用户一个提示信息,那么我们就需要判断这个结果集是否...php //方法一 获取select结果集行数 $rows=mysql_query("select * from `student` where `age`='16';"); if (mysql_num_rows

3.5K10

一个基于PDO数据库操作类(新) + 一个PDO事务实例

* 20110630 * 整体修改方法,合并部分参数 * 规范代码,一个方法里只有1个return语句 */ /* 参数说明 int $debug 是否开启调试,开启则输出...需要查询数据库字段,允许,默认为查找全部 string $sqlwhere 查询条件,允许 string $orderby 排序,允许,默认为id倒序 */ function...数据库表 string $fields 需要插入数据库字段 string $values 需要插入数据库信息,必须与$fields一一对应 */ function hrInsert...delete,无返回信息 1 返回执行条目数 string $table 数据库表 string $sqlwhere 删除条件,允许 */ function...>   另外一段代码是基于我这个数据库操作类事务实例: /* 注意,数据库操作表类型必须InnoDB,其他类型不支持事务 PDO事务机制 $pdo->beginTransaction(

41330
您找到你想要的搜索结果了吗?
是的
没有找到

PHP PDO——单例模式实现数据库操作

PHP PDO——单例模式实现数据库操作 (原创内容,转载请注明来源,谢谢) 一、概述 PDOPHP访问数据库轻量、持久接口,其提供一个抽象访问层。...f.lastInsertId:返回最小插入数据库行。 g.prepare:执行准备SQL语句,配合绑定操作等,返回语句后需要执行PDOStatement。...a.bindColumn:绑定一个PHP变量到结果集输出列。 b.bindParam:绑定一个PHP变量到预处理语句中参数。...c.bindValue:绑定一个值与处理语句中参数。 d.columnCount:返回结果集中列数量。...为了利用PDO安全性,因此在拼接SQL时,需要将用户输入参数使用占位符进行替换(即在拼接时使用冒号+字段名,或者使用问号),并且在完成sql拼接以及PDOprepare方法后,使用PDOStatement

2.8K80

PHP PDO数据库操作预处理与注意事项

PDOPHP Database Object)扩展PHP访问数据库定义了一个轻量级、一致性接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致函数执行查询和获取数据。...PDOPHP访问各类数据库定义了一个轻量级一致性接口,无论什么数据库,都可以通过一致方法执行查询和获取数据,而不用考虑不同数据库之间差异,大大简化了数据库操作。...使用PDO可以支持mysql、postgresql、oracle、mssql等多种数据库。 什么是预处理? 成熟数据库都支持预处理语句(Prepared Statements)概念。...$sql = "delete from persons where id = ?"...auto_increment 解决方法 可以加入自增长或者预处理语句中加入主键字段 总结 以上就是这篇文章全部内容了,希望本文内容对大家学习或者工作具有一定参考学习价值,谢谢大家对ZaLou.Cn

84321

PHPPDO操作学习(三)预处理类及绑定数据

PHPPDO操作学习(三)预处理类及绑定数据 要说 PDO 中最强大功能,除了不同数据库提供了统一接口之外,更重要就是它预处理能力,也就是 PDOStatement 所提供功能。...因为它存在,才让我们可以安心地去使用而不用操心 SQL 语句拼接不好所带来安全风险问题。当然,预处理也我们提升了语句执行效率,可以说是 PDO 另一大杀器。...绑定字段 接下来就是重点内容了,在预处理语句中,我们可以使用占位符来绑定变量,从而达到安全处理查询语句作用。通过占位符,我们就不用去自己拼装处理带单引号字段内容了,从而避免了 SQL 注入发生。...当然,预处理语句和占位符是任何操作语句都可以使用。它作用就是用绑定值来替换语句中占位符所在位置内容。...() 语句执行之前完成,否则绑定就是一个数据 bindColumn 这个方法是用于绑定查询结果集内容

1.4K10

PHPPDO对象操作学习(一)初始化PDO及原始SQL语句操作

PHPPDO对象操作学习(一)初始化PDO及原始SQL语句操作 PDO 已经是 PHP 中操作数据库事实上标准。包括现在框架和各种类库,都是以 PDO 作为数据库连接方式。...查询语句 大多数情况下,使用 PDO 我们都会用它预处理能力来编写 SQL 语句,一来是性能更好,二来是更加安全。...而 user2 类则是一个类。通过测试结果来看,类属性对于 PDO 来说并不重要。它会默认创建数据库查询到字段属性,并将它赋值给对象。...很多小伙伴会以这个进行判断是否更新成功,但如果数据没有修改,那么它返回将是 0 ,SQL 语句执行是没有问题,逻辑上其实也没有问题。...也就是说,在前端判断更新操作时候,需要判断字段是否都有改变,如果没有改变的话那么不应该提示更新失败。

1.3K10

新手指南:DVWA-1.9全级别教程之SQL Injection

1.判断是否存在注入,注入是字符型还是数字型 2.猜解SQL查询语句中字段数 3.确定显示字段顺序 4.获取当前数据库 5.获取数据库中表 6.获取表中字段名 7.下载数据 下面对四种级别的代码进行分析...2.猜解SQL查询语句中字段数 输入1' or 1=1 order by 1 #,查询成功: ? 输入1' or 1=1 order by 2 #,查询成功: ?...说明执行SQL查询语句中只有两个字段,即这里First name、Surname。...2.猜解SQL查询语句中字段数 抓包更改参数id1 order by 2 #,查询成功: ? 抓包更改参数id1 order by 3 #,报错: ?...说明执行SQL查询语句中只有两个字段,即这里First name、Surname。 3.确定显示字段顺序 抓包更改参数id1 union select 1,2 #,查询成功: ?

3K80

PHPPDO操作学习(四)查询结构集

,我们没有给 PDO 对象指定 PDO::ATTR_DEFAULT_FETCH_MODE 属性,所以它是返回默认 PDO::FETCH_BOTH 格式,也就是字段名和下标同时存在。...所以我们如果在不重新 execute() 情况下再次调用 fetchAll() 的话,获取就是数据。因为游标已经到底了。...查询语句返回行数 需要注意是,在查询语句中,有些数据是可能返回此语句行数。但这种方式不能保证对所有数据有效,且对可移植应用更不要依赖这种方式。...其实它就像是 PDO 对象 exec() 方法所返回数据。在不使用预处理语句情况下,直接使用 PDO exec() 方法执行 SQL 语句后,返回也是语句执行后受影响行数。...(); echo $rowCount, PHP_EOL; // 41 增、删、改语句返回受影响行数 $stmt = $pdo->prepare("insert into zyblog_test_user

1.1K20

最新堆叠查询注入攻击和注入代码分析技术

堆叠查询注入攻击 堆叠查询注入攻击测试地址在本书第2章。 堆叠查询可以执行多条语句,多语句之间以分号隔开。堆叠查询注入就是利用这个特点,在第二个SQL语句中构造自己要执行语句。...堆叠查询注入语句如下: ';select if(substr(user(),1,1)='r',sleep(3),1)%23 从堆叠查询注入语句中可以看到,第二条SQL语句 (select if(substr...图4-43 后面获取数据操作与时间注入一样,通过构造不同时间注入语句,可以得到完整数据库库名、表名、字段名和具体数据。执行以下语句,就可以获取数据库表名。...图4-44 堆叠查询注入代码分析 在堆叠查询注入页面,程序获取GET参数ID,使用PDO方式进行数据查询,但仍然将参数ID拼接到查询语句中,导致PDO没起到预编译效果,程序仍然存在SQL注入漏洞...> 使用PDO执行SQL语句时,可以执行多语句,不过这样通常不能直接得到注入结果,因为PDO只会返回第一条SQL语句执行结果,所以在第二条语句中可以用update语句更新数据或者使用时间注入获取数据。

29030

如何从根本上防止SQL注入

当开发人员在运行过程中根据不同查询标准决定提取什么字段(如select语句),或者根据不同条件选择不同查询表时,动态地构造SQL语句会非常有用。...以PHP语句例,命令如下: $query = "SELECT * FROM users WHERE id = $_GET['id']"; 由于这里参数ID可控,且被带入数据库查询,所以非法用户可以任意拼接...当传入参数IDand1=1时,执行SQL语句如下: select * from users where id = 1 and 1=1 因为1=1真,且where语句中id=1也真,所以页面会返回与...2.使用预编译语句 使用PDO预编译语句时需要注意是,不要将变量直接拼接到PDO语句中,而是使用占位符进行数据库中数据增加、删除、修改、查询。示例代码如下: <?...php $pdo=new PDO('mysql:host=127.0.0.1;dbname=test','root','root'); $stmt=$pdo->prepare('select * from

44330

SQL注入原理及代码分析(二)

几种常见SQL注入攻击 堆叠查询注入 先说一下堆叠查询,堆叠查询可以执行多条语句,多语句之间以分号隔开。堆叠注入就是利用这个特点,在第二条SQL语句中构造自己要执行句子。 然后看代码 在堆叠注入页面中,程序获取GET参数id,使用PDO方式进行数据查询,但是还是将id拼接到SQL语句中,导致POD没起到预编译效果。程序仍然存在SQL注入。...使用PDO执行SQL语句时,可以执行多条语句,但只返回第一条执行结果。所以第二条语句中可以使用时间盲注等来会获取数据。时间注入上一篇文章分析了。...我们发现构造时间注入语句成功执行,之后可以通过这种方法猜解出,库名,表名,字段及内容。...宽字节注入攻击 先说一下宽字节注入原理,如果我们注入参数字符型,我们构造自己SQL语句时候需要用单引号闭合前面的SQL语句,但是咱们输入单引号被转义(反斜杠)了,导致参数无法逃逸单引号包围,

69230
领券