- 博客(42)
- 收藏
- 关注
原创 数据库设计中char、varchar、text和nchar、nvarchar、ntext的区别
很多开发者进行数据库设计的时候往往并没有太多的考虑char, varchar类型,有的是根本就没注意,因为存储价格变得越来越便宜了,忘记了最开始的一些基本设计理论和原则,这点让我想到了现在的年轻人,大手一挥一把人民币就从他手里溜走了,其实我想不管是做人也好,做开发也好,细节的把握直接决定很多东西。当然还有一部分人是根本就没弄清楚他们的区别,也就随便选一个。在这里我想对他们做个简单的分析,当然如果有
2013-11-24 20:18:00 1438
原创 php漏洞与代码审计过程中需要注意的几点
漏洞无非这么几类,XSS、sql注入、命令执行、上传漏洞、本地包含、远程包含、权限绕过、信息泄露等 1.xss + sql注入 其中占大头的自然是XSS与SQL注入,对于框架类型或者有公共文件的,建议在公共文件中统一做一次XSS和SQL注入的过滤。写个过滤函数,可由如下所示: $_REQUEST = filter_xss($_REQUEST); $_GET = filter
2013-11-24 20:12:43 1362
原创 mysql replace into的用法和新功能
首先来说所mysql replace into的功能: replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。 注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLAC
2013-11-24 20:09:50 1143
原创 sql筛选记录语句中where和having的区别
HAVING是先分组再筛选记录,WHERE在聚合前先筛选记录。也就是说作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后对组记录进行筛选。 作用的对象不同。WHERE 子句作用于表和视图,HAVING 子句作用于组。WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而 HAVING 在分组和聚集之后选取分组的行。因此,WHERE 子句
2013-11-24 20:06:53 2555
转载 用PHP实现微博里面短链接的算法
思路: 1)将长网址md5生成32位签名串,分为4段, 每段8个字节; 2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理; 3)这30位分成6段, 每5位的数字作为字母表的索引取得特定字符, 依次进行获得6位字符串; 4)总的md5串可以获得4个6位串; 取里面的任意一个就可作为这个长url的短url
2013-11-24 20:04:20 1274
原创 PHP调用session_start后页面始终加载的问题研究
一个PHP页面的执行时间比较长(15秒左右),而只要这个页面没有执行完毕,其他的页面访问都是长时间加载状态,只有那个页面执行完毕了,剩下的页面才能打开。这是什么情况呢,经过查看,两个页面都设计到了SESSION操作,示例代码如下:页面一:页面二: 访问页面一地时候同时访问页面二,你会发现页面二会一直保持加载状态直到页面一执行完毕。问题的原因是
2013-11-24 19:53:32 1429
原创 Windows下的Memcache安装
很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西,害得我在CnetOS下折腾1天才搞定,今天突然发现Windows下的Memcache进行开发调试完全没有问题,所以写篇Memcache的文档分享给大家。
2013-11-24 18:41:07 2090
原创 Memcache常用方法
Memcache::add — 添加一个值,如果已经存在,则返回false Memcache::addServer — 添加一个可供使用的服务器地址 Memcache::close — 关闭一个Memcache对象 Memcache::connect — 创建一个Memcache对象 Memcache::debug — 控制调试功能 Memcache::decrement —
2013-11-24 18:39:58 2610
原创 mysql copy复制拷贝表数据及结构的几种方式
mysql拷贝表操作我们会常常用到,下面就为您详细介绍几种mysql拷贝表的方式,希望对您学习mysql拷贝表方面能够有所帮助。假如我们有以下这样一个表:id username password ----------------------------------- 1 admin ************* 2 sa
2013-11-24 18:30:03 2010
转载 MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别
Unix时间戳(Unix timestamp),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。在MySQL中如何格式化时间戳?在mysql中因为timestamp无法支持到毫秒,所以很多时候采用毫秒进行存储。那么如何将存储在数据库中Int类型的时间,如:1344954515,转换成我们正常可以肉眼能看懂的时间格式呢?我们一
2013-11-20 17:18:11 1886
转载 PHP-redis中文文档
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:下载地址如下:https://github.com/owlient/phpredis(支持redis 2.0.4)Redis::__construct构造函数$redis = new Redis();conne
2013-11-20 13:12:22 2324
原创 PHP 抽象类
在自然语言中,我们理解抽象的概念是,一个物体的一种大的描述,这种描述对某类物体来说是共有的特性。那么在PHP中也是一样的,我们把一个类进行抽象,可以指明类的一般行为,这个类应该是一个模板,它指示它的子方法必须要实现的一些行为。 PHP抽象类应用的定义: abstract class ClassName{ } PHP抽象类应用要点: 1.定义一些方法,子类必须完全实现这个
2013-11-18 17:44:19 1000
原创 php取整函数ceil,floor,round,intval函数的区别
开发过程中,遇到数据处理取整的时候,你会用哪个呢,小涛来介绍一下:PHP取整函数有ceil,floor,round,intval,下面详细介绍一下:1、ceil — 进一法取整说明float ceil ( float $value )返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通
2013-11-18 14:53:34 1187
原创 javascript时钟
function startTime(){var today=new Date()var h=today.getHours()var m=today.getMinutes()var s=today.getSeconds()// add a zero in front of numbersm=checkTime(m)s=checkTime(s)document.g
2013-11-18 14:47:34 1003
转载 PHP数组一览
1. 数组定义 数组的定义使用 array()方式定义,可以定义空数组: 复制代码代码如下:$number = array(1,3,5,7,9); //定义空数组 $result = array(); $color =array("red","blue","green"); //自定义键值 $language = (1=>"English",3=
2013-11-17 15:11:35 1047
转载 基于 HTML5 的人脸识别技术
演示了通过 HTML5 + JavaScript 技术实现的人脸识别,目前仅适用于 Chrome浏览器,首先需要在地址栏输入 about:flags ,然后找到“启用 MediaStream” 这一项,点击“启用” 后重启 Chrome 浏览器然后打开下面地址:http://neave.com/webcam/html5/face/当你摇头晃脑的时候,那副眼镜会跟
2013-11-17 14:59:57 3611
原创 HTML5语音识别
input type="text" x-webkit-speech x-webkit-grammar="builtin:translate" />
2013-11-17 14:57:17 2118 1
转载 php字符串简介
1:字符串的表示:在超链接中的设置: 其中$Myemail = "qq.com"这样的话,才不会错,因为一对双引号里面的是字符串内容。程序只看两个相邻的“”之间的内容。内容补充:可以用 \ 来转义序列。2:连接字符串 .3:在比较两个字符串时不用区分大小写的函数:$result = strcasecmp($str1, $str2);strcmp
2013-11-14 19:25:00 1049
原创 php中查找数组中是否存在某个元素
查找一个元素是否在数组中,一共有上面三种做法:in_array '函数在数组中搜索给定的值。in_array(value,array,type)type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。 array_key_exists 'array_key_exists() 函数判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否
2013-11-14 17:15:59 4356
原创 MySQL添加授权的用户命令实际操作
我们今天是要和大家一起探讨的是MySQL添加授权的用户命令 ,我前两天在相关网站看见MySQL添加授权的用户命令的资料,觉得挺好,就拿出来供大家分享。希望会给你带来一些帮助在此方面。1.新建用户。登录MySQL@>MySQL -u root -p@>密码创建用户MySQL> mysql> insert into M
2013-11-14 10:24:43 1285
转载 mysql触发器的三个示例
mysql触发器是mysql数据库的重要概念,下面为您介绍三个mysql触发器的例子,供您参考,希望对您学习mysql触发器方面能有所帮助。示例一 delimiter // create trigger InsertUser before insert on user for each row Begin insert into user_group(uid,gid
2013-11-13 22:26:21 6275
转载 MySql触发器实例
触发器能进行一些约束.这是个小例子,当Student表的StudentID列被发生更改时,BorrowStudent表的StudentID列也跟着更改.如果Student表删除某记录,BorrowStudent也删除对应StudentID的记录./*先删除将要创建而存在的表*/drop table if exists Student;drop table if exists B
2013-11-13 22:05:18 2620
原创 mysql触发器学习
1 引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序。触发器是mysql5新增的功能,目前线上凤巢系统、北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程序比如fc-star管理端,sfrd(das),dorado都会用到触发器程序,实现对于数据库增、删、改引起事件的关联操作。本文介绍了触发器的类型和基本使用方法,讲述了触发器使用中容易产生的误
2013-11-13 21:31:26 2017
原创 mysql视图学习总结
一、使用视图的理由是什么?1.安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。2.查询性能提高。3.有灵活性的功能需求后,需要改动表的结构而导致工作量比较大。那么可以使用虚拟表的形式达到少修改的效果。这是在实际开发中比较有用的例子:假如因为某种
2013-11-13 21:11:47 1172
原创 MySQL笔记之视图的使用详解
什么是视图视图是从一个或多个表中导出来的表,是一种虚拟存在的表。视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据。数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。视图中的数据依赖于原来表
2013-11-13 21:04:37 2704
原创 mysql游标
Mysql从 5.0 开始支持存储过程和 trigger ,给我们喜欢用 mysql 的朋友们更喜欢 mysql 的理由了,语法 上和PL/SQL 有差别,不过搞过编程的人都知道,语法不是问题,关键是思想,大致了解语法后,就从 变量定义,循环,判断,游标,异常处理这个几个方面详细学习了。关于游标的用法Mysql 现在提供 的还很特别,虽然使用起来没有PL/SQL 那么顺手,不过使
2013-11-13 18:57:47 3662
转载 mysql存储过程 游标 循环使用介绍
Mysql的存储过程是从版本5才开始支持的,所以目前一般使用的都可以用到存储过程。今天分享下自己对于Mysql存储过程的认识与了解。一些简单的调用以及语法规则这里就不在赘述,网上有许多例子。这里主要说说大家常用的游标加循环的嵌套使用。 首先先介绍循环的分类: (1)WHILE ... END WHILE (2)LOOP ... END LOOP (3)REPEAT ...
2013-11-13 18:52:56 1823
原创 sysbench的安装和做性能测试
sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看:http://sysbench.sourceforge.net。它主要包括以下几种方式的测试:1、cpu性能2、磁盘io性能3、调度程序性能4、内存分配及传输速度5、POSIX线程性能6、数据库性能(OLTP基准测试)目前sys
2013-11-11 21:18:51 844
转载 MYSQL 存储过程语法入门
首先看MySQL 5.0参考手册中关于创建存储过程的语法说明: 1. CREATE 2. [DEFINER = { user | CURRENT_USER }] 3. PROCEDURE sp_name ([proc_parameter[,...]]) 4. [characteristic ...] routine_body 5. pro
2013-11-10 17:57:08 1976
原创 mysql 中 时间和日期函数
一、MySQL 获得当前日期时间 函数1.1 获得当前日期+时间(date + time)函数:now()mysql> select now();+---------------------+| now() |+---------------------+| 2008-08-08 22:20:46 |+--------------
2013-11-10 17:40:30 899
原创 mysql存储过程的调用方法
mysql存储过程的调用方法是经常会用到的,下面就为您介绍mysql存储过程的调用方法,希望对您学习mysql存储过程方面会有些许帮助。先进入mysql命令行环境然后创建函数,先要选择数据库delimiter $$是设置 $$为命令终止符号,代替分号 ,因为分号有其他用处现在恢复分号做终止符号,调用函数
2013-11-10 17:32:38 1355
原创 存储过程语法及实例
存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。--------------------基本语法--------------------一.创建存储过程create procedure sp_name()begin.........end二.调用存储过程1.基本语法:call sp_name()注意:存储过程名称后面必
2013-11-10 16:58:30 2255
原创 mysql 存储过程实例
技术要点一个存储过程包括名字、参数列表,以及可以包括很多SQL语句的SQL语句集。下面为一个存储过程的定义过程:create procedure proc_name (in parameter integer)begindeclare variable varchar(20);if parameter=1 thenset variable=’MySQL’;elseset varia
2013-11-10 16:54:06 3236
原创 MySQL集群简介与配置详解
1. 先了解一下你是否应该用MySQL集群。减少数据中心结点压力和大数据量处理,采用把MySQL分布,一个或多个application对应一个MySQL数据库。把几个MySQL数据库公用的数据做出共享数据,例如购物车,用户对象等等,存在数据结点里面。其他不共享的数据还维持在各自分布的MySQL数据库本身中。2. 集群MySQL中名称概念.(如上图)1)Sql结点(S
2013-11-05 18:40:02 1283
原创 详解MySQL集群下的复制(replicate)原理
从MySQL 5.1 开始,就支持集群+复制了,这对于想要构建一个高可用方案的用户来说,无疑是个惊喜。在这种模式下,既有主从的实时备份,又有基于集群的负载均衡,不足指出在于,从我的测试结果来看,这种方案下的性能还不是太高,仍有待改进。集群+复制的配置其实很简单,就是配置好2个独立的集群后,把其中一个的SQL节点作为另一个集群SQL节点的slave即可。甚至可以使用下面几种架构:3个
2013-11-05 18:37:28 2330
原创 Mysql分区
非整数列分区任何使用过分区的人应该都遇到过不少问题,特别是面对非整数列分区时,MySQL 5.1只能处理整数列分区,如果你想在日期或字符串列上进行分区,你不得不使用函数对其进行转换。MySQL 5.5中新增了两类分区方法,RANG和LIST分区法,同时在新的函数中增加了一个COLUMNS关键词。我们假设有这样一个表:CREATE TABLE expenses ( expe
2013-11-04 18:33:31 1551
转载 实用的PHP代码片段
一、查看邮件是否已被阅读 当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读。这里有段非常有趣的代码片段能够显示对方IP地址记录阅读的实际日期和时间。 123456789101112131415161
2013-11-03 18:15:45 1055
原创 ubunto下安装LAMP(4)
测试phpMyAdmin最后一步就是,确保phpMyAdmin在正常运行。打开Web浏览器,输入地址 http://localhost/phpmyadmin/。你应该会看到像这样的页面。 phpMyAdmin登录屏幕现在你应该能够以用户名root和之前创建的根密码来登录。phpMyAdmin已登录恭喜你,现在你已完成了在Ubuntu 12.04上安装和配置LAMP及ph
2013-11-02 23:26:28 1075
原创 ubunto下安装LAMP(3)
安装phpMyAdmin你不需要安装phpMyAdmin,但除非你是SQL方面的奇才,否则就需要它在MySQL数据库上处理管理任务。你可以使用这个终端命令来安装phpMyAdmin:sudo apt-get install libapache2-mod-auth-mysql phpmyadmin 系统会提示你确认你想安装软件包。按回车键,继续进行。安装phpMyAdmin软
2013-11-02 23:24:42 1064
原创 ubunto下安装LAMP(2)
测试Apache打开Web浏览器窗口,输入地址http://localhost/。你应该会看到一个网页显示"It Works!"。Apache可正常工作测试php你已确认了Apache Web服务器可正常工作,于是你应该确保所安装的php正常工作。为此,你需要在/var/www中创建一个名为testing.php的文件。你可以以根用户的身份使用常用的文本编辑器,也可以使用下面这
2013-11-02 23:23:53 1106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人