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

当我使用带有'NOT IN‘的sql进行查询时,php函数不从sql返回结果

当使用带有'NOT IN'的SQL进行查询时,PHP函数不从SQL返回结果可能是由于以下几个原因导致的:

  1. SQL语句错误:首先需要确保SQL语句的正确性。检查SQL语句中的表名、字段名、条件等是否正确,并且确保SQL语句没有语法错误。
  2. 数据库连接问题:确认PHP代码中是否正确地建立了与数据库的连接。检查数据库连接的用户名、密码、主机地址等是否正确,并确保数据库服务器正常运行。
  3. 数据库查询问题:检查SQL查询是否正确地执行了。可以通过打印出SQL语句并在数据库中手动执行来验证查询是否返回了结果。如果手动执行SQL语句可以返回结果,那么可能是PHP代码中的问题。
  4. PHP代码问题:检查PHP代码中是否正确地执行了SQL查询,并正确处理了查询结果。确保使用了适当的PHP函数来执行SQL查询,并使用合适的方法来获取查询结果。

如果以上步骤都没有解决问题,可以尝试以下方法:

  • 调试SQL语句:使用数据库调试工具或打印出SQL语句进行调试,确保SQL语句正确无误。
  • 检查数据库权限:确保PHP代码连接数据库的用户具有足够的权限执行查询操作。
  • 检查数据库表和字段:确认数据库中的表和字段是否存在,并且与SQL语句中的表和字段名称一致。
  • 检查数据库连接设置:检查PHP代码中的数据库连接设置,包括数据库主机地址、用户名、密码等是否正确。
  • 检查PHP函数使用:确保使用了正确的PHP函数来执行SQL查询,并正确处理查询结果。

对于PHP函数不返回结果的具体问题,需要更多的上下文信息和代码示例才能提供更准确的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MyBB

(安装论坛引擎,数据库配置中选择PostgreSQL) 当使用PostgreSQL数据库引擎,发现SQL注入将通过inc/db_pgsql.php文件中原生pg_send_query函数执行。...(在使用Postgresql时调用本机函数pg_send_query) 根据PHP官方文档,pg_send_query函数可以一次执行多个查询。...(使用用户签名模板在服务器上执行代码) 有人可能会认为,在创建/编辑模板,";${system('id')}结构可能被注入到eval函数中(member.php第2158行),并表示一个单独指令...现在我们回到MyBB中SQL注入,它使用PostgreSQL进行查询。在SQL注入期间使用单引号或双引号将导致它们转义: ' AND '....(在多查询模式下执行SQL注入,第二次查询覆盖用户签名模板,注入恶意代码) 结果是执行system('id')命令。

50430

提交单引号

语句 输入加号 我们在参数输入1+1,看看返回数据是不是id等于2结果,这里注意一下+号在SQL语句是有特效含义,所以我们要对其进行url编码,最后也就是%2b。...…… UNION SELECT 联合查询:可以用于一个或多个SELECT结果集,但是他有一个条件,就是两个select查询语句查询必须要有相同列才可以执行,利用这个特性我们可以进行对比查询,也就是说当我们...方式2:用order by 查询“order by * -- order by order by查询:在sql语句中是对结果指定列进行排序,比如我们想让结果集按照第一列排序就是 order by 1...第一种:我们让第一个查询结果始终为假 上图可看到,什么都没有显示,因为填充使用null,所以返回就是空null....要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定进行分组。 index.php?

1.7K20
  • 实战|MySQL联合注入

    0x01 SQL注入原理: 一、SQL注入就是一种通过操作SQL语句进行攻击目的技术 二、SQL语句是各大数据库中语言代码 0x02 SQL注入产生: 攻击者通过把SQL命令插入到Web表单递交或输入域名或页面请求查询字符串...返回正常页面,我们再 and 1=2 看看 ? 返回是500错误,当我们and 1=1 页面返回正常,and 1=2 页面返回错误,有些时候返回500不要觉得没有,有些时候照样存在注入。...我们输入order by 25 返回正常,order by 26返回错误,由此我们可以判定存在25个字段。接下来我们使用联合注入。 第一步、为什么我要在参数前面加上-号呢?...可以看到,爆出数字9与19,说明在9跟19这两个数是可控,在这里我们就要用到我们上面说函数了,查数据库名,查操作系统,查PHP版本,查用户组权限。这里我就直接查数据库名了。...下面我们要查询adminuser表下列信息。 语句:http://www.xxx.com/xxx.php?

    1.3K31

    phpmysqli防注入攻略

    PHP使用mysqli连接MySQL数据库是一种常见方式,但同时也存在着SQL注入攻击风险。在本文中,我们将介绍如何使用mysqli防治SQL注入攻击。...下面是一些使用mysqli防治SQL注入攻击建议。使用mysqli类中prepare语句在使用mysqli连接MySQL数据库,我们可以使用mysqli类中prepare语句。...();当我使用prepare语句,我们需要将待查询SQL语句分成两部分:查询语句和查询参数。...函数,我们需要将需要转义字符串作为第一个参数传入函数中。...函数会将特殊字符进行转义,并返回转义后字符串。使用数据库准确数据类型在创建数据库表,我们需要根据数据类型来设置字段类型。如果我们将字段类型设置为错误数据类型,就有可能会导致SQL注入攻击。

    25610

    二次注入简单介绍

    基本介绍 这里所谓二次注入其实就是将可能导致SQL注入字符先存入到数据库中,而当我们再次调用这个恶意构造字符就可以触发SQL注入,这一种注入在平时并不常见,但是确实是存在一种注入,故此在这里将其单独拎出来说一下...注入原理 二次注入原理是在第一次进行数据库插入数据时候,仅仅只是使用了addslashes或者是借助get_magic_quotes_gpc对其中特殊字符进行了转义,在写入数据库时候还是保留了原来数据...,但是数据本身还是脏数据,在将数据存入到了数据库中之后开发者就认为数据是可信,在下一次进行需要进行查询时候直接从数据库中取出了脏数据,没有进行进一步检验和处理,这样就会造成SQL二次注入,比如在第一次插入数据时候...,数据中带有单引号,直接插入到了数据库中然后在下一次使用中在拼凑过程中就形成了二次注入: 总结起来二次注入其实是分为两个步骤: 插入恶意数据 引用恶意数据 注入思路 二次排序注入思路: 1、黑客通过构造数据形式在浏览器或者其他软件中提交...5、服务端返回执行处理结果数据信息,黑客可以通过返回结果数据信息判断二次注入漏洞利用是否成功 注入案例 这里以Sql-labs中Less-24为例做演示: 程序源代码 login_create.php

    22710

    实战|MySQL联合注入

    下面开始 0x01 SQL注入原理: 一、SQL注入就是一种通过操作SQL语句进行攻击目的技术 二、SQL语句是各大数据库中语言代码 0x02 SQL注入产生: 攻击者通过把...SQL命令插入到Web表单递交或输入域名或页面请求查询字符串,最终达到欺骗服务器执行恶意SQL命令,比如先前很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出,这类表单特别容易受到...返回是500错误,当我们and 1=1 页面返回正常,and 1=2 页面返回错误,有些时候返回500不要觉得没有,有些时候照样存在注入。由此我们可以判断这里是存在注入。...我们输入order by 25 返回正常,order by 26返回错误,由此我们可以判定存在25个字段。接下来我们使用联合注入。 第一步、为什么我要在参数前面加上-号呢?...可以看到,爆出数字9与19,说明在9跟19这两个数是可控,在这里我们就要用到我们上面说函数了,查数据库名,查操作系统,查PHP版本,查用户组权限。这里我就直接查数据库名了。

    1.3K20

    WordPress安全架构分析

    这里会进行hash_equals函数来比对,这个函数不知道是不是wp自己实现,但是可以肯定是没办法绕过,我们来看看计算nonce值几个参数。...举个例子,当我们编辑文章时候,页面会返回文章相关信息,不同位置信息就会经过不同转义。 对于sql注入转义 在Wordpress中,关于sql注入防御逻辑比较特别。.../wp-includes/class-wp-query.php line 2246~2282 面对这种大批量拼接问题,一般会使用esc_sql函数来过滤 这里esc_sql最终也是会调用上面提到escape...当我们输入22 %1%s hello时候,第一次语句中占位符%s会被替换为'%s',第二次我们传入%s又会被替换为'%s',这样输出结果就是meta_value = '22 %1'%s' hello...短代码是一个比较特殊东西,这是Wordpress给出一个特殊接口,当文章加入短代码,后台可以通过处理短代码返回部分数据到文章中,就比如文章阅读数等… 当我们传入 [wpstatistics stat

    1.6K20

    超详细XSS跨站脚本漏洞总结

    Burp等抓包工具进行抓包改包 从类别来看: 反射型XSS 在黑盒测试中,这种类型比较容易通过漏洞扫描器直接发现,我们只需要按照扫描结果进行相应验证就可以了。...打开Firefox输入url:localhost/codeaudit/xss/XssReflex.php : 当我们输入 1 ,页面返回 1 : 当我们输入hello,页面返回 hello :...3、设置黑名单与白名单 4、在开发开发人员严格设置WEB安全编码规范 5、对cookie进行特殊防御 6、对进行网页编码实体化 7、对Session标记、验证码或者HTTP头检查 具体如下: A.PHP...直接输出html,可以采用以下方法进行过滤: 1.htmlspecialchars函数 2.htmlentities函数 3.HTMLPurifier.auto.php插件 4.RemoveXss函数...B.PHP输出到JS代码中,或者开发Json API,则需要前端在JS中进行过滤: 1.尽量使用innerText(IE)和textContent(Firefox),也就是jQuerytext()

    3.3K10

    SQL注入基本原理_sql到底怎么注入

    3、Sql注入产生原因及威胁  刚刚讲过当我们访问动态网页, Web 服务器会向数据访问层发起 Sql 查询请求,如果权限验证通过就会执行 Sql 语句。...总之只要是带有参数 动态网页且此网页访问了数据库,那么就有可能存在 Sql 注入。如果程序员没有足够安全意识,没有进行必要字符过滤,存在SQL注入可能性就非常大。  ...4.2.1 数字型判断  当输入参 x 为整型,通常 abc.phpSql 语句类型大致如下: select * from where id = x 这种类型可以使用经典 and...> where id = 'x and 1=2'  查询语句将 and 语句全部转换为了字符串,并没有进行 and 逻辑判断,所以不会出现以上结果,故假设是不成立。...javascript在客户端进行不安全字符屏蔽  功能介绍:检查是否含有”‘”,”\”,”/”  参数说明:要检查字符串  返回值:0:是1:不是  函数名是 function check(

    87430

    SQL注入漏洞详解

    作用:从目标 XML 中返回包含所查询字符串 ps: 返回结果 限制在32位字符 // 可以将 user() 改成任何我们想要查询函数sql语句 ,0x7e表示是 ~ http://127.0.0.1...但是这个函数有一个特点就是虽然会添加反斜杠 \ 进行转义,但是 \ 并不会插入到数据库中。。这个函数功能和魔术引号完全相同,所以当打开了魔术引号,不应使用这个函数。...当查询结果产生后,会从表和字段编码转换成character_set_results所对应编码,返回给客户端。...服务端返回执行处理结果数据信息,黑客可以通过返回结果数据信息判断二次注入漏洞利用是否成功 我们访问 http://127.0.0.1/sqli/Less-24/index.php 是一个登陆页面,我们没有账号...在这里,我们使用了占位符方式,将该SQL传入prepare函数后,预处理函数就会得到本次查询语句SQL模板类,并将这个模板类返回,模板可以防止传那些危险变量改变本身查询语句语义。

    2.2K10

    SQL注入从入门到进阶

    select 1,2:例如一个网站参数传递执行查询有3个字段,很可能这些字段不是都显示在网页前端,假如其中1或2个字段查询结果是会返回到前端,那么我们就需要知道这3个字段中哪两个结果会回显,...需要将前面的查询结果限定为空集,后面的查询结果才能显示出来。...sleep(n) 将程序挂起n秒 if(参数1,参数2,参数3) 参数1为条件,当参数1返回结果为true,执行参数2,否则执行参数3 布尔盲注 布尔注入利用情景 页面上没有显示位,并且没有输出SQL...当我们在使用 UNC 路径,是会对域名进行 DNS 查询。 UNC路径: UNC是一种命名惯例, 主要用于在Microsoft Windows上指定和映射网络驱动器....使用floor()函数只是为了将查询结果分类 需用到四个函数和一个group by语句: group by ...

    3.9K41

    PHP处理MYSQL注入漏洞

    研发人员在处理应用程序和数据库交互,未对用户可控参数进行严格校验防范,例如使用字符串拼接方式构造SQL语句在数据库中进行执行,很容易埋下安全隐患。...select * from hacker where email=0; 该查询语句作用是通过email查询相应用户信息,由于将email值误写为0,在执行结果中可以看到数据库返回了表中所有内容。...因为在MySQL中执行SQL查询,如果SQL语句中字段数据类型和对应表中字段数据类型不一致,MySQL查询优化器会将数据类型进行隐式转换。...> 在这个SQL语句前面,使用了一个addslashes()函数,将$id进行转义处理。只要输入参数中有单引号,就逃逸不出限制,无法进行SQL注入,具体如下。...name=name%2527 当PHP接收到请求时会自动进行一次URL解码,变为name%27,然后代码里又使用urldecode()函数或rawurldecode()函数进行解码,%27变成了单引号,

    2.3K50

    PHP 编程SQL注入问题与代码

    ,也就是说当我们union select列与它查询列相同时,页面返回正常....首先我们猜测,当前字段数为4时候页面无返回,也就说明表字段数必然是大于4,接着增加一个字段,查询1,2,3,4,5页面显示正常,说明表结构是5个字段. index.php?...id=1' and 1=0 union select null,null,null,null,null --+ Order By查询字段个数: 在SQL语句中是对结果指定列进行排序,比如我们想让结果集按照第一列排序就是...首先我们猜测数据库有6个字段,尝试根据第6行进行排序发现数据无法显示,说明是小于6,我们继续使用5测试,此时返回结果. index.php?...第一种我们让第一个查询结果始终为假,通过使用and 0来实现,或者通过limit语句,limit在mysql中是用来分页,通过他可以从查询出来数据中获取我们想要数据. index.php?

    2.1K20

    代码审计原理与实践分析-SQL篇(一)

    在存在注入页面中,PHP代码主要功能是通过GET或POST获得到参数拼接到SQL语句中,如果没有做任何防护,就可以使用Union语句查询其他数据。...,拼接到SQL语句中查询返回界面只有两种情况,即TRUE和FALSE,这样说并不是很准确,因为SQL查询无非就这两种情况,应该说是布尔型注入时候只能得到一个正常页面或者是什么页面的不存在,甚至在查询记录过程也不会有显示...六、时间型注入 1、原理 时间型注入和布尔型注入十分类似,时间型注入也是通过POST或GET传入参数,拼接到SQL语句中查询,但与布尔型注入不同是,布尔型注入会返回不同结果——TRUE or FALSE...,而时间型注入只会返回一种结果——TRUE,对于时间型注入来说,无论输入任何值,它返回都会按正确来处理,这也就导致了一种问题,我们无法通过页面的反馈来穷举猜测得到我们想要数据。...这样处理就导致了普通SQL注入无法进行,如上文中联合注入(联合注入中一些字符在进行分割被丢弃了)和普通布尔型注入(这里SQL语句仅仅是整个SQL语句中片段,并不影响整个SQL语句执行结果

    64020

    MySQL注入与防御

    1.2、注入原理   SQL注入本质是恶意攻击者将SQL代码插入或添加到程序参数中,而程序并没有对传入参数进行正确处理,导致参数中数据会被当做代码来执行,并最终将执行结果返回给攻击者   1.3...例如:select/**/1,2,3   2、使用union进行查询,需要对应数据类型【谨记谨记】;例如union前面的第一列是int,后面就不要对应string了   2.2、注入流程   1.判断...因此,当我使用函数进行注入时候单引号被过滤处理了,那么将会出现错误!   此时我们可以使用字符串十六进制或者ASCII码十进制进行注入!     ...这个问题可以这么解决, 使用使用MySQL中 subString 函数, subString(字符串,开始,返回)。   ...主要有以下几个方面   1、在表单中通过js绑定数据类型、或者过滤一些非法字符   2、连接数据库使用预编译语句,绑定变量【PHP使用mysqli、PDO进行连接使用数据库】   3、在数据进入后台逻辑

    1.8K20

    Sql注入衔接

    登录框(页面请求查询) 二、SQL注入原理 SQL注入(SQLInjection)是这样一种漏洞:当我Web app 在向后台数据库传递SQL语句进行数据库操作。...搜索型注入点 这是一类特殊注入类型。这类注入主要是指在进行数据搜索没过滤搜索参数,一般在链接地址中有“keyword=关键字”,有的不显示在链接地址里面,而是直接通过搜索框表单提交。...注入,都是基于查库、表、列语句 八、如果查询结果太多,网页上无法显示查询结果,有如下解决方法: (1)group_concat()函数 ?...在php代码中有这样一个函数规定了页面上显示内容只能是一行,当查询到了数据就只返回一行,所以我们获取不了第二行信息,当我们想获取所有用户名信息时候,可以用msyql函数group_concat(...)函数,用法:select group_concat(username) from users ;这样就可以把用户名连成一条来输出,若不使用函数,会造成页面放不下而报错。

    1.2K20

    Wordpress安全架构分析

    token:最重要就是这部分 当我们登陆后台,我们会获得一个cookie,cookie第一部分是用户名,第三部分就是这里token值。...举个例子,当我们编辑文章时候,页面会返回文章相关信息,不同位置信息就会经过不同转义。...,一般会使用esc_sql函数来过滤 这里esc_sql最终也是会调用上面提到escape函数来转义语句 function esc_sql( $data ) { global $wpdb; return...,当你用户权限为超级管理员,wordpress默认你可以对自己网站负责,你可以修改插件文件、上传带有后门插件,这可以导致后台几乎可以等于webshell。...短代码是一个比较特殊东西,这是Wordpress给出一个特殊接口,当文章加入短代码,后台可以通过处理短代码返回部分数据到文章中,就比如文章阅读数等...

    1.7K80

    SQLI-LABS 更新帖(一)

    ,所以是字符型当我们传入参数时候存在’会报错 ?...返回根据从结果集取得行生成数组,如果没有更多行则返回 false。...我们sql语句查询出来两行,但是到php去输出时候被这个函数只取一行输出出来,所以我们只需要把第一个闭合语句失效,查一条不存在或者让它and 1=2永远不成立然后再用union 进行拼接便会找到显位...可以看出我们用:添加分隔符,进行分隔提取出来字段多条时方便查看。 GROUP_CONCAT函数: url:/sql/Less-1/?...id是你想要查询字段,group_concat函数separator是可将查询结果用字符串连接变为一行进行查询,后头跟分隔符。注:group_concat函数大小写敏感,所以表名出要小写。

    98380

    SQL 注入漏洞检测与利用

    结果集,但是他有一个条件,就是两个select查询语句查询必须要有相同列才可以执行,利用这个特性我们可以进行对比查询,也就是说当我们union select列与它查询列相同时,页面返回正常,而在...上面的结果,说明字段数就是3,输入数大于或小于字段数都会报错,而使用union select null,null,null替换1,2,3是相同效果用数字也可以. index.php?...id=1 order by 4 # b.上面查询没有显示任何结果,我们查询4个字段无返回值,说面该表小于4个字段,我们继续使用3测试,此时返回结果. index.php?...,null,null limit 1,1 上面结果返回也是空,因为这使用null,所以返回还是null ◆查库与表名称◆ 查当前数据库名称: 可以直接使用MySQL自带函数database()来查询得到当前使用数据库...结果集,但是他有一个条件,就是两个select查询语句查询必须要有相同列才可以执行,利用这个特性我们可以进行对比查询,也就是说当我们union select列与它查询列相同时,页面返回正常,而在

    4.4K20

    php pdo连接数据库操作示例

    就是当我们写完一个sql语句后,按回车键执行不起,而要经过特殊代码处理才能提交上去,后面我会介绍) 然后写出你要执行sql语句并将返回结果赋给两个不同变量,之后提交,如果在执行时候其中1个或多个发生了错误...,就进行事务回滚,即使回归初始状态(也就是前面在事务处理代码中插入或改变或删除或查询语句全部作废),还有一个优点是不会因为进入其他网页,或执行其他sql语句而影响到事务处理进程 //以下是事务回滚代码简介...用mysql_num_rows()函数能数出数据库返回结果行数,以此来判断该用户输入用户名和密码是否正确,那么在pdo中我们如何实现这个功能呢?...在pdo中有一个函数pdo::fetchall(),他作用是将从数据库返回一个结果集全部赋给获取它值,之后再用count()函数数出行数具体事例代码如下 <?...;//这就是我们所说预处理 $shuju- execute();//执行预处理结果; $jg=$shuju- fetchall(PDO::FETCH_ASSOC);//将返回结果集以数组方式全部返回给变量

    1.8K31
    领券