精华内容
下载资源
问答
  • PHP如何判断用户是否存在

    千次阅读 2018-10-04 20:41:56
    此方法仅适用ThinkPHP模板。 0x01 准备 首先是一个登录界面。 然后是准备好的数据库。 然后是准备好的一个模块和方法。 0x02 实现 1. 使用post获取数据 $use=$_POST['username']; $p=$_POST['password']; ...

    0x00 前言

    此方法仅适用于ThinkPHP模板。

    0x01 准备

    首先是一个登录界面。
    在这里插入图片描述
    然后是准备好的数据库。
    在这里插入图片描述
    然后是准备好的一个模块和方法。
    在这里插入图片描述

    0x02 实现

    1. 使用post获取数据

    		$use=$_POST['username'];
        	$p=$_POST['password'];
    

    2. 使用$where获取判断条件

    		$n=M('login');
        	$where['use']=$use;
        	$where['p']=$p;
    

    3.使用count进行判断

    $i=$n->where($where)->count();
    

    4.剩下的就是if else的判断了。

    展开全文
  • 如何判断数据库是否已经存在某个临时表? A: 一、已创建的临时表只存在于tempdb库的用户表中(但不属于tempdb库),而不可能存在于某个其它库的的用户表中; 如为库A创建了一个临时表#m,但在A的表对象中并没有#m,...

    Q:

    如何判断数据库中是否已经存在某个临时表?

    A:

    一、已创建的临时表只存在于tempdb库的用户表中(但不属于tempdb库),而不可能存在于某个其它库的的用户表中;         如为库A创建了一个临时表#m,但在A的表对象中并没有#m,而#m确在tempdb的表对象中(你可以在查询分析器的观察).
    二、为任何库创建的临时表,表名均不能重复,因为临时表只存在于tempdb库的用户表中;
    三、临时表并不存在父对象,其tempdb..sysobjects.parent_obj=0;
    四、还存在临时存储过程等其它对象;所以下列判断方法不完全
            IF   (OBJECT_ID( 'TEMPDB..# ')   IS   NOT   NULL)
            PRINT   'EXISTS '
            ELSE
            PRINT   'NOT   EXISTS '
    五、可以用下列方法判断是否存在相应的临时表(#m):

    if   exists(select   1   from   tempdb..sysobjects   where   name= '#m '   and   xtype= 'U ')
    print   'not   exists '
    else
    print   'exists '

     

     

    转载于:https://www.cnblogs.com/lenya/archive/2011/01/11/3706745.html

    展开全文
  • 首先要说一下我遇到这个问题的背景,为了可以针对性解决问题 背景:这是我参与的 “亿佳和” 项目,在生产入库模块...要解决的问题:上传3000多条码,如何区分哪些是已经存在于数据库中,哪些是未插入的呢? 我尝...

    首先要说一下我遇到这个问题的背景,为了可以针对性解决问题

    背景:这是我参与的 “亿佳和” 项目,在生产入库模块上传的一个问题,上传的条码比较多在后来可能是百万级的,而目前到了15w级别。现在用户又上传条码了,大概3000个左右。成功即全部插入,失败提示重复,部分成功,并把另一部分重复条码返回给用户。

    要解决的问题:上传3000多条码,如何区分哪些是已经存在于数据库中,哪些是未插入的呢?

    我尝试过的办法:

    1. 组成一条select语句where把3000条码用or进行拼接查询。
    2. 循环3000条码,挨个用where条件访问数据库进行判断。
    3. 然后是学长的一个思路,把要插入的数据直接全部插入,之后再把这3000条码查出来,和原来要插入的全部数据做差集,这样就可以得到插入失败的条码,并返回给用户了。
    4. 把数据库的15w条码查出来存进数组,循环3000条码,分别用in_array函数判断是否在15w条码里面,在的话就放入重复条码列表显示给用户。否则放入另外一个随后插入。
    5. 这算是上一个方法的改版,就是把15W数据键值对进行翻转,大家都知道 data[$key]=$value。
    6. 任务化,像微信公众号一样推送消息,只需要发送请求,任务会在后台慢慢执行至执行完成。

    这些方法的结果:

    1. 这种方法没什么毛病,但是or拼接出来数据库返回即成功或失败,并不会区分哪些or后面的条件是可行的。
    2. 思路最简单的一个办法,可是数据库访问次数太多,作为一个初学者我能这么早意识到这个问题看来我还是蛮鸡贼的哈哈。
    3. 根据我自己测试的,insert语句values一次多个数据,如果有一个失败那么整条语句就over。这就导致如果3000数据一次插入只要一个条码重复一个都差不进去,也无法再做差集找到重复条码。但据学长说可行,这个我随后要去讨论一番。(追加:确实可行,详情请见http://blog.csdn.net/qq_20797031/article/details/52756482)。这个博客的第一个办法 用关键字ignore,然后thinkphp的curd方法没法插入这个关键字,我也就没用。慢慢尝试吧。
    4. 这是我初期使用的一个思路,避免了多次访问数据库而且可以很好的区分哪些条码重复,哪些可以插入,思路也不难。但是用了一段时间之后问题就来了,就像本次的背景,问题就是这个时候发生的。首先说一下in_array这个函数,这个函数的时间复杂度是O(n),也就是说目前数据库15W数据,循环要插入的3000,每次都要拿其中一个去15W数据里挨个找,找一个下来就需要比较15w次,而比较3000个的结果粗略一算就需要比较4.5亿次,然后造成上传之后用户这边一脸懵逼,到底是上传成功还是不成功?这个时候如果用f12打开开发者工具的话从控制台可以看出来报错(500),虽然那个错我没有百度翻译(我是个学渣英语不好),不过猜出来应该是超时,我今天大二上学期刚学完数据结构,算法题随之就来,这就好玩了!
      /*
          $smallall[]    //数据库现有条码存入的数组
          $wait[][]        //此次上传的要插入的条码
          $diff[]            //重复的条码列表
          $ndiff[]        //不重复的条码列表,可插入
       */
          foreach ($wait as $key => $value) {
              if(!in_array($value['smallCode'],$smallall)){    //smallCode是条码字段
                  $ndiff[]=$value;
              }else{
                  $diff[]=$value;
              }
          }
    5. 这个取值过程时间复杂度是O(1)级别的,键被设置过以后可以通过isset这个函数进行直接判断。循环3000条码,用isset函数判断当前条码是否已经被设置为键,如果返回true就说明翻转后的15W条码里存在该键(条码),也就是重复的条码。否则就是可插入的。把数据库15W数据翻转,至少需要15W的运算量,但是循环3000条码用isset进行直接取值判断,只需要3000次就可以,15W+3000还不到16W,比原来的4.5亿次快很多有木有。哈哈,我瞎说的,确实快了很多不过运算量是我自己猜测的。
      /*
          $smallall[]    //数据库现有条码存入的数组
          $wait[][]        //此次上传的要插入的条码
          $diff[]            //重复的条码列表
          $ndiff[]        //不重复的条码列表,可插入
       */
          $res=array_flip($smallall);    //键值对翻转
          foreach ($wait as $key => $value) {
              if(!isset($res[$value['smallCode']])){    //smallCode是条码字段
                  $ndiff[]=$value;
              }else{
                  $diff[]=$value;
              }
          }
    6. 这个我不会。还需要学习。。。

    目前问题解决了,一个代码质量的问题。花了一天时间解决的。虽然比较慢但是这样的进步收获是巨大的。

    加油!

     

    2月5日:年前又出问题了,由于这个项目后期会有几百万数据,现在到了几十万当然超过15w了,然后select直接报错。查阅很多资料才发现是php.ini限制调用内存大小不能超过128m,我去修改配置文件搜索不到那一串配置内存大小的代码,好的是又发现 ini_set("memory_limit","-1"); 这句代码填进程序中,可以无限制内存大小。我想了想几百万数据我这内存应该够使吧。。。不行得再想办法,持续更新ing……

    转载于:https://www.cnblogs.com/marchsoft-wangqi/p/6295518.html

    展开全文
  • 数据库基础

    2012-09-22 16:27:04
    §10.2.10 如何用户创建公共同义词 229 第二部分 Oracle PL/SQL基础 231 第十一章 PL/SQL 程序设计简介 231 §11.1 概述 231 §11.2 SQL与PL/SQL 231 §11.2.1 什么是PL/SQL? 231 §11.2.1 PL/SQL的好处 232 §...
  • 通过作者历时3年的写作,本书介绍了Oracle的安装及卸载、数据库的启动关闭、表空间和数据文件的管理、Oracle网络管理、口令文件管理、内存管理、进程管理、用户管理、数据的导入导出、备份与恢复、模式对象的管理...
  • 通过作者历时3年的写作,本书介绍了Oracle的安装及卸载、数据库的启动关闭、表空间和数据文件的管理、Oracle网络管理、口令文件管理、内存管理、进程管理、用户管理、数据的导入导出、备份与恢复、模式对象的管理...
  • 就是我在ASP.net里做了用户登录界面,...怎么判断用户和密码是否存在于这两个表中的某一行数据中啊。。 我是菜鸟,初学者!!!别嘲笑我TAT我只是想知道怎么查询 谢谢各位大佬们</p>
  • 4、转移数据库给新用户以已存在用户权限 exec sp_change_users_login 'update_one','newname','oldname' go 5、检查备份集 RESTORE VERIFYONLY from disk='E:\dvbbs.bak' 6、修复数据库 ALTER DATABASE [dvbbs] ...
  • Oracle8i_9i数据库基础

    2010-03-03 14:16:58
    §10.2.10 如何用户创建公共同义词 229 第二部分 Oracle PL/SQL基础 231 第十一章 PL/SQL 程序设计简介 231 §11.1 概述 231 §11.2 SQL与PL/SQL 231 §11.2.1 什么是PL/SQL? 231 §11.2.1 PL/SQL的好处 232 §...
  • 第一章Oracle数据库基础............................................................................................................23 §1.1 理解关系数据库系统(RDBMS).....................................
  • 从5.1.1c版本开始使用Oracle,自7.0.9版本发布就一直任职Oracle公司,帮助Oracle数据库用户设计和构建系统,或者对系统进行重构和调优。此前曾是一位系统集成师,主要为美国军方和政府部门的客户构建大规模的异构...
  • 11.6.3 外键是否应该加索引? 475 11.6.4 为什么没有使用我的索引? 476 11.6.5 神话:索引中从不重用空间 483 11.6.6 神话:最有差别的元素应该在最前面 486 11.7 小结 490 第12章 数据类型 491 12.1 Oracle...
  • 2019数据运营思维导图

    2019-03-29 21:34:09
    宏观走势,是否需要进行市场投放 判断是否存在渠道作弊行为、渠道包被下架等问题 日一次会话用户数 即新登用户中只有一次会话,且会话时长低于门阀值 ——解决问题 推广渠道是否有刷量作弊行为 渠道推广质量是否合格...
  • 数据运营思维导图

    2018-04-26 14:24:22
    判断是否存在渠道作弊行为、渠道包被下架等问题 日一次会话用户数 即新登用户中只有一次会话,且会话时长低于门阀值 ——解决问题 推广渠道是否有刷量作弊行为 渠道推广质量是否合格 用户导入是否存在障碍点,...
  • 实例181 判断输入数据是否符合要求 332 实例182 批量数据保存前的判断 335 实例183 防止数据保存时出现运行时错误 338 4.9 数据删除 340 实例184 删除表格中指定的记录 340 实例185 利用SQL语句删除数据 341 ...
  • 实例181 判断输入数据是否符合要求 332 实例182 批量数据保存前的判断 335 实例183 防止数据保存时出现运行时错误 338 4.9 数据删除 340 实例184 删除表格中指定的记录 340 实例185 利用SQL语句删除数据 341 ...
  • @IsUnavailable 判断域名是否存在于文档里 @Isvalid 在当前表单执行所有检验公式 @Keywords 给定两个文本列表,返回第一个列表和第二个列表之间重叠的部分 @Left 从左到右搜索字符串,并返回字符串中最左边的几个...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0139 使用FileExists函数判断指定文件是否存在 90 0140 使用FileGetAttr函数返回文件的属性 90 0141 使用FileGetDate函数返回文件的修改日期 90 0142 使用FileWrite函数将缓冲区中的内容写入文件 91 4.10 ...
  • 0139 使用FileExists函数判断指定文件是否存在 90 0140 使用FileGetAttr函数返回文件的属性 90 0141 使用FileGetDate函数返回文件的修改日期 90 0142 使用FileWrite函数将缓冲区中的内容写入文件 91 4.10 ...
  • 0139 使用FileExists函数判断指定文件是否存在 90 0140 使用FileGetAttr函数返回文件的属性 90 0141 使用FileGetDate函数返回文件的修改日期 90 0142 使用FileWrite函数将缓冲区中的内容写入文件 91 4.10 ...
  • 0139 使用FileExists函数判断指定文件是否存在 90 0140 使用FileGetAttr函数返回文件的属性 90 0141 使用FileGetDate函数返回文件的修改日期 90 0142 使用FileWrite函数将缓冲区中的内容写入文件 91 4.10 ...
  • 0139 使用FileExists函数判断指定文件是否存在 90 0140 使用FileGetAttr函数返回文件的属性 90 0141 使用FileGetDate函数返回文件的修改日期 90 0142 使用FileWrite函数将缓冲区中的内容写入文件 91 4.10 ...
  • 0139 使用FileExists函数判断指定文件是否存在 90 0140 使用FileGetAttr函数返回文件的属性 90 0141 使用FileGetDate函数返回文件的修改日期 90 0142 使用FileWrite函数将缓冲区中的内容写入文件 91 4.10 ...
  • 实例173 检查文件是否存在 227 实例174 提取指定文件夹目录 228 实例175 查找文件 229 5.3 修改文件 230 实例176 更改文件名称 231 实例177 长短文件名转换 231 实例178 修改文件属性 233 实例...
  • 实例173 检查文件是否存在 227 实例174 提取指定文件夹目录 228 实例175 查找文件 229 5.3 修改文件 230 实例176 更改文件名称 231 实例177 长短文件名转换 231 实例178 修改文件属性 233 实例...
  • 目前市场业务中在产品以及其他项目的认证和检测方面存在诸多不便,用户需要实地考察并频繁与检测单位沟通,填写繁琐的纸质检测报告、当面送递样品,对于检测环节中存在的问题难以及时交互并处理。市场上相应的检测...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 173
精华内容 69
关键字:

如何判断用户是否存在于数据库