select函数

Python学习第九天

拟墨画扇 提交于 2020-03-03 08:29:20
生产者-消费者模型: 看下面的例子哦: 1 import threading,queue 2 import time 3 def consumer(n): 4 while True: 5 print("\033[32;1mconsumer [%s]\033[0m get task: %s"%(n,q.get())) 6 time.sleep(1) 7 q.task_done() 8 def producer(n): 9 count=1 10 while True: 11 print('producer [%s] produced a new task: %s'%(n,count)) 12 q.put(count) 13 count += 1 14 q.join()#queue is emtpy 15 print('all tasks has been cosumed by consumers...') 16 q=queue.Queue() 17 c1=threading.Thread(target=consumer,args=[1,]) 18 c2=threading.Thread(target=consumer,args=[2,]) 19 c3=threading.Thread(target=consumer,args=[3,]) 20 21 p=threading.Thread

Sql语句防注入

北慕城南 提交于 2020-03-02 23:50:32
用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL Injection ,即 SQL 注入。 SQL 注入是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,所以目前市面的防火墙都不会对 SQL 注入发出警报,如果管理员没查看 IIS 日志的习惯,可能被入侵很长时间都不会发觉。 但是, SQL 注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的 SQL 语句,从而成功获取想要的数据,是高手与 “ 菜鸟 ” 的根本区别。 根据国情,国内的网站用 ASP+Access 或 SQLServer 的占 70% 以上, PHP+MySQ 占 L20% ,其他的不足 10% 。在本文,我们从分入门、进阶至高级讲解一下 ASP 注入的方法及技巧, PHP 注入的文章由 NB 联盟的另一位朋友 zwell 撰写,希望对安全工作者和程序员都有用处。了解 ASP 注入的朋友也请不要跳过入门篇,因为部分人对注入的基本判断方法还存在误区。大家准备好了吗? Let's Go... 入门篇 如果你以前没试过 SQL 注入的话,那么第一步先把 IE 菜单 => 工具 =>Internet 选项 => 高级 => 显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误, IE

前端学PHP之mysql扩展函数

孤者浪人 提交于 2020-03-02 17:18:00
前面的话   mysql由于其体积小、速度快、总体拥有成本低,尤其是具有开放源码这一特点,许多中小型网站为了减低网站总体拥有成本而选择了mysql作为网站数据库。而使用mysql数据库管理系统与php脚本语言相结合的数据库系统解决方案,正被越来越多的网站所采用,其中以LAMP(linux+apche+mysql+php)模式最为流行   PHP有标准的函数用来操作数据库,mysqli是PHP5中新加的,是对mysql扩展的改进。但由于历史遗留问题,好多老项目是在PHP4中使用mysql拓展开发的,如果在原有的项目上进行二次开发,都要求使用mysql拓展函数。如果是新设计的项目,推荐使用mysqli拓展或PDO技术。本文主要介绍PHP中的mysql拓展函数 总括   在PHP脚本中操作MySQL数据库的的几个步骤如下:   1、连接MySQL数据库服务器,并判断是否连接正确   2、选择数据库,并设置字符集(可选)   3、执行SQL命令   4、处理结果集   5、关闭数据库连接 连接MySQL数据库服务器,并判断是否连接正确 mysql_connect()   mysql_connect()函数用来打开一个到 MySQL 服务器的连接。如果成功则返回一个资源, 或者在失败时返回FALSE resource mysql_connect ([ string $server [,

SQLite学习手册

核能气质少年 提交于 2020-03-02 09:41:04
先来一段客套话   SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至今已经有12个年头,SQLite也迎来了一个版本 SQLite 3已经发布。 它的Logo里头的那条毛,估计就是说明它够轻的意思。 1 工具   最原始的工具当然是命令模式的工具,也有图形界面的,FireFox的SQLite Manager,SQLiteSpy,VS也行,以前找到一个免费的好像还可以的忘了叫什么名字了。找了几个都不好用干脆原始一点用命令模式算了,可以到官网里下,有个Shell的那个就是命令行工具了。   输入“.help”就会弹出一大堆内置的命令,各个命令的功能如下 命令名 命令说明 .help 列出所有内置命令。 .backup DBNAME FILE 备份指定的数据库到指定的文件,缺省为当前连接的main数据库。 .databases

Python协程的引入与原理分析

故事扮演 提交于 2020-03-02 03:52:40
相关概念 并发: 指一个时间段内,有几个程序在同一个 cpu 上运行,但是任意时刻只有一个程序在cpu上运行。比如说在一秒内cpu切换了100个进程,就可以认为cpu的并发是100。 并行: 值任意时刻点上,有多个程序同时运行在cpu上,可以理解为多个cpu,每个cpu独立运行自己程序,互不干扰。并行数量和cpu数量是一致的。 我们平时常说的高并发而不是高并行,是因为cpu的数量是有限的,不可以增加。 形象的理解:cpu对应一个人,程序对应喝茶,人要喝茶需要四个步骤(可以对应程序需要开启四个线程):1烧水,2备茶叶,3洗茶杯,4泡茶。 并发方式:烧水的同时做好2备茶叶,3洗茶杯,等水烧好之后执行4泡茶。这样比顺序执行1234要省时间。 并行方式:叫来四个人(开启四个进程),分别执行任务1234,整个程序执行时间取决于耗时最多的步骤。 同步 ( 注意同步和异步只是针对于I/O操作来讲的 )值调用IO操作时,必须等待IO操作完成后才开始新的的调用方式。 异步  指调用IO操作时,不必等待IO操作完成就开始新的的调用方式。 阻塞 指调用 函数 的时候,当前线程被挂起。 非阻塞 指调用 函数 的时候,当前线程不会被挂起,而是立即返回。 IO多路复用   sllect, poll, epoll都是IO多路复用的机制。IO多路复用就是通过这样一种机制:一个进程可以监听多个描述符

mysql详解

佐手、 提交于 2020-03-01 11:59:43
mysql命令 mysql登录参数: -D, --database 指定数据库 --delimiter 指定分隔符 -h, --host 指定服务器地址 -p, --password 指定密码 -P, --port 指定端口 --prompt 设置提示符 -u, --user 指定用户名 -V, --version 输出版本信息并退出 修改命令提示符: 通过参数指定提示符, mysql -uroot -p123456 --prompt 提示符 通过命令指定提示符, mysql> prompt 提示符; 提示符: \D 完整的日期 \d 当前数据库 \h 服务器名称 \u 当前数据库 常用命令: SELECT VERSION(); 显示当前服务器版本 SELECT NOW(); 显示当前日期时间 SELECT USER(); 显示当前用户 mysql语句规范: 1. 关键字与函数名称全部大写 2. 数据库名称、表名称、字段名称全部小写 3. SQL语句必须以分号结尾 操作数据库 CREATE DATABASE 创建数据库 ALTER DATABASE 修改数据库 DROP DATABASE 删除数据库 创建数据库: {} 为必选项; | 表示或; [] 为可选项。下同 CREATE { DATABASE | SCHEMA } [ IF NOT EXISTS ] db_name [

SQL Server系统函数

浪子不回头ぞ 提交于 2020-02-29 12:59:21
一、字符转换函数 1 、 ASCII () 返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。 2 、 CHAR () 将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值, CHAR () 返回NULL 。 3 、 LOWER ()和UPPER() LOWER ()将字符串全部转为小写; UPPER ()将字符串全部转为大写。 4 、 STR () 把数值型数据转换为字符型数据。 STR ( < float_expression > [ ,length[, <decimal> ] ]) length 指定返回的字符串的长度, decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。 当length 或者decimal 为负值时,返回NULL; 当length 小于小数点左边(包括符号位)的位数时,返回length 个 * ; 先服从length ,再取decimal ; 当返回的字符串位数小于length ,左边补足空格。 二、去空格函数 1 、 LTRIM () 把字符串头部的空格去掉。 2 、 RTRIM () 把字符串尾部的空格去掉。 三、取子串函数 1 、 left () LEFT (

Sql日期时间格式转换

狂风中的少年 提交于 2020-02-29 01:03:37
sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 Select CONVERT(varchar(100), GETDATE(), 6):

Oracle实战笔记(第六天)之PL/SQL基础

╄→гoц情女王★ 提交于 2020-02-27 12:28:27
一、PL/SQL介绍   1、概念    PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的 扩展 。在普通SQL语句的使用上 增加了编程语言的特点 ,所以PL/SQL可以用来编写存储过程、存储函数、触发器等等。 PL/SQL是结构化SQL,就是在标准SQL中加入了IF...ELSE... For....等控制过程的SQL。   2、学习必要性 提高程序的运行性能 传统的使用程序操作数据库的方式需要获得connection,然后程序传到数据库后还需要进行编译才能执行,而且执行结果还需要回调,这些过程都需要花费时间。而PL/SQL编程可以直接进行过程编程,这就节省了数据连接、语句传送和编译的时间,同时编程结果可以被外部程序调用。 模块化的设计思想 很多复杂的过程都需要传送和执行大量的sql语句,比如分页的过程、实现订单的过程、转账的过程等等,这些过程就可以通过PL/SQL进行模块化整理进而方便管理。 减少网络传输量 提高安全性   PL/SQL的缺点在于移植性不好,如果项目不再使用Oracle来管理数据,那么需要重新编写语句。 二、开发工具   1、Oracle自带的命令行工具sql*plus    下面举一个运用PL/SQL语句的案列:编写一个存储过程,并执行。   简单说一下,

使用multi curl进行http并发访问

混江龙づ霸主 提交于 2020-02-27 07:24:06
curl是一款利用URL语法进行文件传输的工具,它支持多种协议,包括FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET等,我们既可以在命令行上使用它,也可以利用 libcurl进行相关编程。相信大部分同学都应该使用过libcurl的easy 接口,easy接口的使用非常的简单,curl_easy_init用来初始化一个easy curl对象,curl_easy_setopt对easy curl对象进行相关设置,最后curl_easy_perform执行curl请求,返回相应结果。easy接口是阻塞的,也就是说必须等到上一个curl请求执行完后,下一个curl请求才能继续执行,在一般的应用场合,这种阻塞的访问方式是没有问题的,但是当程序需要进行多次curl并发请求的时候,easy接口就无能为力了,这个时候curl提供的multi接口就派上用场了,网上关于libcurl的multi接口的使用资料比较少(百度出来的大部分都是php multi curl的资料),curl官网上貌似也只有相关函数的说明,有实际demo才能让我们更快速的上手使用,所以下面结合实际例子来讲讲multi curl接口的使用方法。 相比而言,multi接口的使用会比easy 接口稍微复杂点,毕竟multi接口是依赖easy接口的,首先粗略的讲下其使用流程:curl_multi