可爱熊个人博客

Category : 技术杂文

LOCK TABLES和UNLOCK TABLES语法

LOCK TABLES
    tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}
    [, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}] ...
UNLOCK TABLES

LOCK TABLES可以锁定用于当前线程的表。如果表被其它线程锁定,则造成堵塞,直到可以获取所有锁定为止。UNLOCK TABLES可以释放被当前线程保持的任何锁定。当线程发布另一个LOCK TABLES时,或当与服务器的连接被关闭时,所有由当前线程锁定的表被隐含地解锁。

表锁定只用于防止其它客户端进行不正当地读取和写入。保持锁定(即使是读取锁定)的客户端可以进行表层级的操作,比如DROP TABLE。

注意,下面是对事务表使用LOCK TABLES的说明:

·         在尝试锁定表之前,LOCK TABLES不是事务安全型的,会隐含地提交所有活性事务。同时,开始一项事务(例如,使用START TRANSACTION),会隐含地执行UNLOCK TABLES。 Read More…

Tags: ,

php函数mb_convert_encoding()使用详解

今天碰到一个问题,使用二进制从.dat文件中读取出来的中文数据,在utf-8页面中使用的时候,出现乱码。试了很多方法都不成功,最后找到一种方法解决了问题,使用mb_convert_encoding()函数将字符串的编码转换后再输出。
mb_convert_encoding()  转换内容编码,可解决输出编码乱码问题。
做一个GBK To UTF-8
Php代码
  1. <?php
  2. header(“content-Type: text/html; charset=Utf-8″);
  3. echo mb_convert_encoding(“妳係我的友仔”, ”UTF-8″, ”GBK”);
  4. ?>

再来个GB2312 To Big5

  1. <?php
  2. header(“content-Type: text/html; charset=big5″);
  3. echo mb_convert_encoding(“你是我的朋友”, ”big5″, ”GB2312″);
  4. ?>

Tags:

PHP读取纯真IP数据库的函数

以前是使用文本记录ip及里面的各个省市信息,但是更新IP内容很慢,还要自己手动修改,添加比较麻烦,今天看了下以前DZ版本的ip地址查询功能,看到他们使用的是纯真IP库。纯真IP库更新很快,里面的内容很全,所以记录下来以方便使用!

<?php//===================================
//
// 功能:IP地址获取真实地址函数
// 参数:$ip – IP地址
// 作者:[Discuz!] (C) ***** Inc.
//
//===================================
//
// 调用举例(速度很快)
//
//========================echo convertip(’219.238.235.10′);
//输出: 北京市 电信通echo convertip(’23.56.82.12′);
//输出:IANAecho convertip(’250.69.52.0′);
//输出:IANA保留地址echo convertip(’238.69.52.0′);
//输出:IANA保留地址 用于多点传送echo convertip(’192.168.0.1′);
//输出:局域网 对方和您在同一内部网echo convertip(’255.255.255.255′);
//输出:纯真网络 2006年11月20日IP数据
$ip=’210.32.0.0′;
echo convertip($ip);
#Notice: Undefined variable: ip1num in E:\phpLearn\IPcount\index.php on line 81
#Notice: Undefined variable: ip2num in E:\phpLearn\IPcount\index.php on line 81
#Notice: Undefined variable: ipAddr2 in E:\phpLearn\IPcount\index.php on line 150
#Notice: Undefined variable: ipAddr1 in E:\phpLearn\IPcount\index.php on line 152
#福建省福州市 铁通

Read More…

Tags: ,

apache伪静态实例

想把
www.***.com/abc/def.php?uuu
伪静态为
www.***.com/abc/uuu

.htaccess里应该怎么写?

RewriteEngine On
RewriteBase /abc
RewriteRule ^(.*)$ def.php?$1 [L,QSA]

或者

RewriteRule ^abc/(.*)$ def.php?$1 [L,QSA]

Tags:

php生成随机密码的几种方法

使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。随机密码也就是一串固定长度的字符串,这里我收集整理了几种生成随机字符串的方法,以供大家参考。

方法一

1、在 33 – 126 中生成一个随机整数,如 35,

2、将 35 转换成对应的ASCII码字符,如 35 对应 #

3、重复以上 1、2 步骤 n 次,连接成 n 位的密码

该算法主要用到了两个函数,mt_rand ( int $min , int $max )函数用于生成随机整数,其中 $min – $max 为 ASCII 码的范围,这里取 33 -126 ,可以根据需要调整范围,如ASCII码表中 97 – 122 位对应 a – z 的英文字母,具体可参考 ASCII码表chr ( int $ascii )函数用于将对应整数 $ascii 转换成对应的字符。 Read More…

Tags: ,

PHP 循环

循环

在您编写代码时,您经常需要让相同的代码块运行很多次。您可以在代码中使用循环语句来完成这个任务。

在 PHP 中,我们可以使用下列循环语句:

while
只要指定的条件成立,则循环执行代码块
do…while
首先执行一次代码块,然后在指定的条件成立时重复这个循环
for
循环执行代码块指定的次数
foreach
根据数组中每个元素来循环代码块
Read More…

Tags: ,

MySQL四舍五入的实现

文章主要描述的是MySQL四舍五入的实际应用,以及在其实际操作中的值得我们大家注意的事项与其实际应用代码的描述,以下就是文章的主要内容的详细描述,望大家在浏览之后会对其有更深的了解。

  • FLOOR(X)  
  • 返回不大于X的最大整数值。

  • MySQL> select FLOOR(1.23);  
  • -> 1  
  • MySQL> select FLOOR(-1.23);  
  • -> -2 
  • 注意返回值被变换为一个BIGINT!

  • CEILING(X)  
  • 返回不小于X的最小整数值。

  • MySQL> select CEILING(1.23);  
  • -> 2  
  • MySQL> select CEILING(-1.23);  
  • -> -1 
  • 注意返回值被变换为一个BIGINT!

  • ROUND(X)  
  • 返回参数X的MySQL四舍五入的一个整数。

  • MySQL> select ROUND(-1.23);  
  • -> -1  
  • MySQL> select ROUND(-1.58);  
  • -> -2  
  • MySQL> select ROUND(1.58);  
  • -> 2 
  • 注意返回值被变换为一个BIGINT!

  • ROUND(X,D)  
  • 返回参数X的四舍五入的有D为小数的一个数字。如果D为0,结果将没有小数点或小数部分。

  • MySQL> select ROUND(1.298, 1);  
  • -> 1.3  
  • MySQL> select ROUND(1.298, 0);  
  • -> 1 
  • 注意返回值被变换为一个BIGINT!

    Tags:

    PHP图片类 可显示多种图形报表

    <?php //图类
    class ImageReport{
    var $X;//图片大小X轴
    var $Y;//图片大小Y轴
    var $R;//背影色R值
    var $G;//…G.
    var $B;//…B.
    var $TRANSPARENT;//是否透明1或0
    var $IMAGE;//图片对像
    //——————-
    var $ARRAYSPLIT;//指定用于分隔数值的符号
    var $ITEMARRAY;//数值
    var $REPORTTYPE;//图表类型,1为竖柱形2为横柱形3为折线形
    var $BORDER;//距离
    //——————-
    var $FONTSIZE;//字体大小
    var $FONTCOLOR;//字体颜色

    var $numX = 1;//X轴起始刻度值
    var $stepX = 1;//X轴每一个刻度间隔值

    //——–参数设置函数
    function setImage($SizeX,$SizeY,$R,$G,$B,$Transparent){
       $this->X=$SizeX;  
       $this->Y=$SizeY;  
       $this->R=$R;   Read More…

    Tags: ,

    linxu top命令解析

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
    top – 01:06:48 up  1:22,  1 user,  load average: 0.06, 0.60, 0.48
    Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.3% us,  1.0% sy,  0.0% ni, 98.7% id,  0.0% wa,  0.0% hi,  0.0% si
    Mem:    191272k total,   173656k used,    17616k free,    22052k buffers
    Swap:   192772k total,        0k used,   192772k free,   123988k cached

       PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
      1379 root      16   0  7976 2456 1980 S  0.7  1.3   0:11.03 sshd
    14704 root      16   0  2128  980  796 R  0.7  0.5   0:02.72 top
         1 root      16   0  1992  632  544 S  0.0  0.3   0:00.90 init
         2 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
         3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    统计信息区
    前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
    01:06:48当前时间
    up 1:22系统运行时间,格式为时:分 Read More…

    Tags:

    memcached内存释放问题

    今天观察系统memcached内存使用情况时突然发现从2010年1月19日开始,memcached内存使用量呈不断上升趋势,短短的几天由原来的几M长到了80M,memcached开的最大内存为128M,照这个速度,春节期间肯定就满了,为什么呢?
         查看1月19日的升级记录,发现当天的确对系统进行了升级,主要内容是将session由数据库管理改为由memcached管理,但是程序中设置session两小时不活动即自动失效,为什么内存没有释放的迹象呢?在网上查找了一些资料发现,原来memcached缓存定时失效以及采用flush清空所有缓存时,memcached是不释放已占用内存的,仅仅是将这些缓存的内容标识为无效,当缓存满了(对于我们的系统说也就是缓存达到128M)后再有新信息放入缓存时,memcached会自动将无效的信息清理掉,周而复始。如果需要手动清理内存,只能使用delete。终于松了口气,系统没啥问题,我可以安心过年了。 Read More…

    Tags: ,