自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除