使MySQL查询区分大小写的实现方法

 select * from table1 where field1 = ‘test’

 

 select * from table1 where field1 = ‘TEST’
 
如果 table1 .field1  是用_ci的整理方式( 比如utf8_general_ci  ),那么上面两句效果是一样的。
换成 utf8_bin 的整理方式就OK了.

 

 一种方法是可以设置表或行的collation(在phpmyadmin里面翻译过来是整理),使其为binary或case sensitive。在MySQL中,对于Column Collate其约定的命名方法如下: 



*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 

*_cs: case sensitive collation,区分大小写 

*_ci: case insensitive collation,不区分大小写 

效率最快,最节省空间的memcached module

 

php有两个memcache扩展,默认都是使用php自带的序列化函数serialize来存储数组或对象。但是serialize最为人诟病的就是速度慢,序列化之后占用空间大。由于facebook已经在memcached里保存了200T字节的数据,因此序列化函数即便作出的百分之一的优化对它来说都是个不小的收益。但是Facebook没有开源这个module,我使用msgpack代替了PHP自身的序列化。 msgpack是一种新的基于二进制的对象序列化类库。它可以像JSON那样,在许多种语言之间交换结构对象;但是它比JSON更快速也更轻巧。

我测试过一个二维数组,php自带的序列化,字符长为225, 使用msgpack序列字符长 仅为91  节省百分之七八十空间







第二个改进 是 使用 QuickLZ  代替 zlib



QuickLZ 是一个号称世界压缩速度最快的压缩库。quickLZ的压缩率比zlib 略低,而压缩的速度确实比zlib 的快了很多。让你使用字符串解压缩的时候,尽可能减少CPU的占用。



http://www.cellphp.com/memcache-3.0.tar.bz2



作者: 七夜

QQ  : 531020471

MSN : [email protected]

mail: [email protected]



PHP高级群

62116204

PHP开源、负载、高级研究群。新手的就不要进来了

netbeans php cannot find java 1.5

 

  安装了 java 6  ( jre6 – netbeans php 只需要 jre 就可以了,不需要 jdk) .运行 免安装的netbeans php。还是提示 Cannot find Java 1.5 or higher。

解决方法:打开NetBeans下的目录〈etc〉的netbeans.conf文件。找到下面这一行。
#netbeans_jdkhome="/path/to/jdk" 
将它改为把#去掉,改为:netbeans_jdkhome="C:\Program Files\Java\jre6"

 

 

 

 

PHP使用msmtp代替sendmail发邮件

 刚才在配置WP-DB-Backup时随手google了一下wordpress使用的是何种方式发的邮件,因为之前对这个不是很了解,大致看了下,也就是两种方法,一种是使用PHP的mail函数,透过本地SMTP发信,说这种办法怎么怎么麻烦,怎么怎么不适用个人的服务器。

另外一种就是使用PHPMailer。但是得安装插件,或者手动修改一些代码。
可是大多也都只介绍个大概,没有看见说是怎么实现的,所以只好去看看代码它究竟是怎么做的。
关键代码在wp-includes/pluggable.php中的wp_mail这个函数里,通过查看代码知道了wordpress完全使用的PHPMailer这个类来处理email的发送,这个类既支持本地SMTP又支持远程SMTP,而在wp_mail中它默认使用的是本地的SMTP,在2.9.2版本中代码在第396行
// Set to use PHP’s mail()
$phpmailer->IsMail();
这样就已经很清楚了,虽然没看那些插件的怎么实现的,想来不过是Hook了这个函数,而手动修改代码跟着个原理是一样的。
如果不想修改手动修改代码,也不想安装插件的话,那么看起来也就仅仅剩下安装本地MTA这一种办法了,但是对于个人网站来说使用MDA有些太浪费系统资源了,其实有更好的解决办法,那就是google企业邮局+SMTP代理程序,这个样子既可以使用自己域名后缀的邮箱又可以免去服务器后台启动senmail或者其他的MTA daemon进程,又浪费空间又浪费内存。
这其实也是种通用的解决办法,这样做不只是wordpress并且其他的只要是使用到mail发信的PHP程序都能免去重复配置发信方法了。
 
下面我说下我的SMTP部分,关于google企业邮局部分自己网上搜下,遍地的教程,这里我就不多做描述了
关于SMTP代理程序,linux下有好几个实现esmtp,msmtp,nbsmtp,ssmtp.我这里是用mstmp,没有为什么使用mstmp,也没说谁比谁更好,我只是最早知道msmtp而且也一直使用的是它而已。
 

原帖:http://lazyhack.net/php-use-msmtp-replace-sent-mail/ 

 

安装

对于常用发行版,可以用发行版所采用的软件包管理工具来安装
如果真没有的话可以到http://msmtp.sourceforge.net下载源代码自己make
$ sudo apt-get install msmtp 注:在debian、ubuntu 等在线安装方法;
$ sudo yum install msmtp 注:Fedora、Redhat、CentOS等系统安装方法;
$ sudo pacman -S mstmtp 注:archlinux安装方法
 
配置
安装好后,需要编辑/etc/msmtprc
$vim /etc/msmtprc
 
account default
host smtp.gmail.com  #smtp服务器地址
port 587
timeout 30
auth on
user [email protected] #替换成自己的邮箱地址
password ************* #密码
auto_from off
from [email protected] #这个同上
maildomain lazyhack.net  #替换成自己的域名
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.log
如果使用其他的邮件提供商,看其是否提供https连接来修改tls部分的选项,如果不提供加密则off掉
 
配置php
接下来配置php,让它透过mstmp来发信,这里只需要修改一行
sendmail_path = "/usr/bin/msmtp -t -i"
这样既可。
 
测试
接下来测试一下是否能够正常工作,建立一个测试用的php脚本
 
<?php
$status = mail("***@***.com", //这里修改接收者的地址
               "Test",
               "Hello \n this test mail",
               "from: ****@****.com"); //这里修改成发送者的地址
if($status) {
        echo "Email has been sent.";
} else {
        echo "Cannot send email";
}
?>
然后运行
$php test.php

Mysql子查询的更新

 有两张表,一张是管理员信息表Admin_user,一张是临时表tmp_Admin_User。当临时表中的用户名和管理员信息表中的用户名相同时,要把临时表中ErrorType字段设置为1。

通常的写法是:

Update `tmp_Admin_User` Set `ErrorType`=1 Where `login_name` in (Select A.`login_name` from `tmp_Admin_User` as A Inner Join `Admin_User` as B On A.`login_name`=B.`login_name`)

但是MySql会报错:#1093 – You can’t specify target table ‘tmp_admin_user’ for update in FROM clause

可以使用的写法应该是:

Update `tmp_Admin_User` as C,(select A.`login_name` from `tmp_admin_user` as A Inner Join `admin_user` as B On A.`login_name`=B.`login_name`) as D set `ErrorType`=1 Where C.`login_name` = D.`login_name`

 原文:http://gee218.blog.163.com/blog/static/4489680820094224133268/

mysql 根据英文首字母来查询汉字函数

 用mysql建立一个函数功能是:英文首字母来查询汉字

 

来源http://topic.csdn.net/u/20090611/17/7579bb9a-0a7c-4460-a302-10bae7f4a9c5.html

不建表,但也未必不复杂。
SQL code
mysql> SELECT *,
    ->  ELT(INTERVAL(CONV(HEX(left(A_UserName,1)),16,10),
    ->          0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,0
xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6,0xCBFA,0xCDDA,0xCE
F4,0xD1B9,0xD4D1),
    ->          ‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,’J’,’K’,’L’,’M’,’N’,’O’,’P’,’Q’,
‘R’,’S’,’T’,’W’,’X’,’Y’,’Z’) as PY
    -> from o_personnel;
+——+————+——+
| A_Id | A_UserName | PY   |
+——+————+——+
|    1 | 首先       | S    |
|    2 | 检查       | J    |
|    3 | 我们       | W    |
|    4 | 的二       | D    |
|    5 | 进制       | J    |
|    6 | 是否       | S    |
|    7 | 适合       | S    |
|    8 | 你的       | N    |
|    9 | 平台       | P    |
+——+————+——+
9 rows in set (0.00 sec)

mysql>
 

Zend Studio 7.0 Released 官方下载地址

 

  1. Zend Studio 7.0 Released 官方下载地址

  2. 注册码 sn

             zend studio 7.0 beta注册码

             Username: zendstudio.net

             Serial Number: 3727234F6095F72034F6095F


由php session(PHPSESSID)带来了的xhtml验证错误

先介绍<img href="./test.php?test=1" />是符合xhtml规范的。

但是  有的时候对于不支持cookie的浏览器访问使用session的网站,

会产生 <img href="./test.php?test=1&PHPSESSID=fdsafdsafdsafds" /> 这个是不符合xhtml规范的。需要把里面的&换成&amp;

 

解决方法有几个。

编辑 php.ini

arg_separator.output = "&amp;"

Apache 配置

php_value arg_separator.output &amp;

对于虚拟主机最简单的是

在每个php文件上面从新定义arg_separator.output

<?php ini_set(‘arg_separator.output’,’&amp;’); ?> 

 

参考:http://www.w3.org/QA/2005/04/php-session

让xrea和coreserver支持Zend Optimizer 和 ioncube

xrea和coreserver 默认是不支持Zend Optimizer 和 ioncube

要让他支持,只需要两个文件,放在加密文件的目录下!

  首先弄一个.htaccess的文件里面加上

AddHandler application/x-httpd-phpcgi .php

把服务器上的php运行模式改成cgi的

 

其实就是弄一个php.ini 的文件 

## ZendOptimizerを使う
zend_extension="/usr/local/Zend/lib/ZendOptimizer.so"
zend_optimizer.optimization_level=15

## ionCube Loaderを使う
zend_extension="/usr/local/ioncube/lib/ioncube_loader.so"

 

 

使用netbeans 6.5 开发 php

推荐一个免费的,体积小的,功能完整的php开发工具(IDE)。netbeans-6.5-ml-php-windows.exe 才25M多点。

apache 和 mysql 可以使用 xampp 这个绿色套件非常不错。

注意一点,默认的代码提示功能(语法提示)的快捷键ctrl+space,对于中文用户来说是个坏处,这个是输入法的切换快捷键。可以使用ctrl + \    (crtl + back_slash) 替代 

需要注意的是在中文系统环境下,我们通常使用Ctrl+Space来切换输入法,而Ctrl+Space在NetBeans中是编辑器代码完成的快捷键,这样会造成冲突。但是很多用户可能不知道,NetBeans默认定义的还有一个快捷键,和Ctrl+Space一样起代码完成的功能,就是Ctrl+Back_Slash(\)。所以可以用它来替换。