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

php如何判断SQL语句的查询结果是否为空?

PHP与mysql这对黄金搭档配合的相当默契,但偶尔也会遇到一些小需求不知道该怎么做,例如今天要谈到的:如何判断sql语句查询的结果集是否为空!...2  李四     男    15  18    2 3  王美丽    女    16  17    5 我们来看看sql查询功能代码,我们要将年龄为16岁的学生信息都查出来; 以上便是查询功能,当结果集不为空时,一切正常,当数据集为空时,会得到一个空白的ul标签, 作为使用者却不知道为什么没有得到数据,此时我们需要给用户一个提示信息,那么我们就需要判断这个结果集是否为空...($rows) < 1){ echo '查询无数据!'...mysql_affected_rows()){ echo '查询无数据!'; } ?> 知道了方法,那么把方法套到我们的代码中看看效果吧 //方法一 <?

3.6K10

如何从根本上防止SQL注入

SQL注入是指Web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数被带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。...当开发人员在运行过程中根据不同的查询标准决定提取什么字段(如select语句),或者根据不同的条件选择不同的查询表时,动态地构造SQL语句会非常有用。...SQL注入漏洞原理 SQL注入漏洞的产生需要满足以下两个条件: 参数用户可控:前端传给后端的参数内容是用户可以控制的。 参数被带入数据库查询:传入的参数被拼接到 SQL语句中,且被带入数据库查询。...id=1相同的结果。...不支持子查询,程序里可能也用得少,但是黑客可以使用它查询数据库敏感信息 elseif(preg_match('~\([^)]*?

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

    Dedecms 中的预认证远程代码执行

    威胁建模 免责声明:我没有实际的威胁建模经验。在审核目标时,我首先问自己的一件事是:应用程序如何接受输入?...后来在[7]中,代码使用攻击者提供的原始 SQL 查询构建了一个原始 SQL 查询$pay_name,最后在[8]我认为是触发了 SQL 注入…… 纵深防御 过去,Dedecms 开发人员曾遭受过SQL...//老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息 elseif (preg_match('~\([^)]*?..."); // 9 } else { return $db_string; } 被CheckSql称为Execute //执行一个带返回结果的SQL...如果匹配pwn,我知道注入的结果已显示给我: 但是,此 SQL 注入受到限制,因为我无法使用select,sleep或benchmark关键字,因为它们被CheckSql函数拒绝。

    4.1K50

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

    > 在union注入页面中,程序获取GET参数id,对用户传过来的id值没有进行过滤,直接拼接到SQL语句中,在数据库中查询id对应的内容,并将这一条查询结果中的user和password 输出到页面。...然后将参数id拼接到SQL语句,从数据库查询,如果有结果,返回yes,否则返回no。...所以访问这个页面,代码根据查询结果返回只返回yes和no,不返回数据库中的任何结果,所以上一种的union注入在这里行不通。尝试利用布尔盲注。...布尔盲注是指构造SQL判断语句,通过查看页面的返回结果来推测哪些SQL判断是成立的。例如,我们可以判断数据库名的长度构造语句如下。...> 查看代码,在时间盲注页面中,程序获取GET参数id,通过preg_match()函数判断是否存在union危险字符,然后将id拼接到SQL语句中,并带入数据库查询。

    93010

    最新时间注入攻击和代码分析技术

    而查询1需要的时间,大约只有几十毫秒。可以根据Burp Suite中页面的响应时间,判断条件是否正确,结果如图4-40所示。...得出数据库库名的长度后,查询数据库库名的第一位字母。...时间注入代码分析 在时间注入页面,程序获取GET参数ID,通过preg_match判断参数ID中是否存在Union危险字符,然后将参数ID拼接到SQL语句中。...从数据库中查询SQL语句,如果有结果,则返回yes,否则返回no。当访问该页面时,代码根据数据库查询结果返回yes或no,而不返回数据库中的任何数据,所以页面上只会显示yes或no。...所以SQL语句中if条件成立,执行sleep(3),页面会延迟3秒,通过这种延迟即可判断SQL语句的执行结果。

    26720

    BUUCTF刷题记录 - wuuconixs blog

    /i",$inject); 所以相当于我们离flag真的只有一墙之隔,正常来说,我们做sql注入题目很多时间都花在了确定flag所在的表,然后是所在的列,现在我们都知道了,但是无法查询。...然后我们通过输入框传入的参数会以$post['query']的形式插入到sql语句中。 由于sql语句中有||存在,||即逻辑或,实际上的结果只有0和1两种,我们无法获得flag。...*, 1 //对应sql语句 select *, 1||flag from Flag //查询结果 Array ( [0] => flag{da7caaaa-8e1c-4b42-abb8-879328bb7189...;select 1||1flag from Flag //查询结果 Array ( [0] => 1 ) Array ( [0] => 1flag{da7caaaa-8e1c-4b42-abb8-879328bb7189...首先获得数据库名为geek 1' union select 1, database(), 3# 然后查看geek库下面的数据表们 geekuser 和 l0ve1ysq1 1' union select

    1.6K40

    ciscn2019华北赛区半决赛day1web5CyberPunk

    file=php://filter/convert.base64-encode/resource=index.php 结果得到了当前页面经过加密后的源码 ?...($pattern,$user_name) || preg_match($pattern,$phone)){ $msg = 'no sql inject!'...> #无用的HTML代码省略 分析代码可以知道,每个涉及查询的界面都过滤了很多东西来防止SQL注入,而且过滤的内容非常广泛,很难进行注入。...如果第一次修改地址的时候,构造一个含SQL语句特殊的payload,然后在第二次修改的时候随便更新一个正常的地址,那个之前没有触发SQL注入的payload就会被触发。...payload使用 两个payload的使用方法为: 先在初始页面随便输数据,记住姓名电话 ? 接着修改地址,地址修改为所构造的payload。

    80620

    php开发微信公众号步骤_微信公众平台php对接

    lng + dlng), ‘left-bottom’=>array(‘lat’=>lng – dlng), ‘right-bottom’=>array(‘lat’=>lng + dlng) ); } 将查询结果按时间降序排列...,message 为数据库中的一个表,location_X 为维度,location_Y 为经度: //使用此函数计算得到结果后,带入sql查询。...检测是否含有中文 $str = “测试中文”; echo $str; echo “ ---- “; //if (preg_match(“/^[“.chr(0xa1).”-“.chr(0xff).”]+.../”, str)) { //只能在GB2312情况下使用 //if (preg_match(“/^[\x7f-\xff]+/”, str)) { //兼容gb2312,utf-8 //判断字符串是否全是中文...if (preg_match(“/[\x7f-\xff]/”, $str)) { //判断字符串中是否有中文 echo “正确输入”; } else { echo “错误输入”; } ?

    16.4K30

    PHP正则表达式

    | 选择符 匹配字符串的左边或者右边 () 分组,提取  //量词   //preg_match()函数匹配成功返回1,失败返回0   echo preg_match('/a+/','abc...preg_match('/(abc)+/','abcd');//返回1 元字符 说明 [a-z] 匹配任何包含小写字母a-z的字符串 [A-Z] 匹配任何包含大写字母A-Z的字符串 [0-9] 匹配任何包含...\b 匹配是否到达了单词边界 \B 匹配没有到达了单词边界 \ 匹配正则中的特殊字符  //元字符   echo preg_match('/[a-z]/','abc');//返回1   echo.../x 忽略模式的空格   echo preg_match('/a b/','ab');//返回0   echo preg_match('/a b/x','ab');//返回1  ​  ...本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。 如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我联系处理。

    1.6K10

    seacms 最新版前台注入漏洞

    |_SESSION)/i',$_k) 即验证传入的参数是否含有以上字符串,若有,则跳转到首页然后退出,这里其实是对前几个版本出现的变量覆盖漏洞的修复。...= 0) { $fail = true; $error="file fun detect"; } //老版本的MYSQL不支持子查询,我们的程序里可能也用得少...,但是黑客可以使用它来查询数据库敏感信息 elseif (preg_match('~\([^)]*?...,3,4,5,6,7,8,9,10,11%23%0afrom%23%0asea_admin-- `'` 这显然传入 SQL语句中会报错,因此我们需要双写符号从而构建注释符,最终结果如下: //**@`'...文章内其实已经写得很明白了,注意参数变量类型,编码,基本上就可以构建出最后的 pyaload,此文的目的是想让大家进一步学习代码审计相关的知识,有的时候,并不是写得过滤内容越多越好,还是要看我们最终执行的地方是否存在问题

    2.2K30

    Web Pentester Sqlinject

    因为是考注入,name的值是直接入数据库查询的。注入先测试单引号'、双引号"、反引号`等。 1.当输入单引号,url为http://129.129.1.38/sqli/example1.php?...name=root' or 1=1 -- s, 看看有什么不同,再联想下服务端的具体select查询语句想想为什么是这个结果。...注:最简单的sql注入步骤,1、先利用单双引号、减号、and和or及sql语句注释符判断是否存在注入,以及存在那种类型的注入;2、看是否支持order by,利用order by找到当前查询的字段数量;...3、看是否支持联合查询,利用union select查看查询后相关字段的显示位置,然后利用联合查询information_schema库依次找到Web对应的库、表、字段。...2、先看是否支持order by和union select联合查询。

    83560
    领券