Dec
20
做校赛的报名系统,插入队伍的时候要考虑队名是否重复,于是想到了使用MySQL的正则表达式。
以前虽然一直知道MySQL有正则表达式,但是因为有LIKE在,所以一直还不需要用它。
正好这次有了机会,就去试试吧。
MySQL的关键字 REGEXP 允许在SQL语句中匹配忽略大小写的POSIX正则表达式。
其实MySQL的文档里面写得非常详细了,给出了很多的例子,可以在这里看到
http://dev.mysql.com/doc/refman/5.1/zh/regexp.html
这里主要是记录一下在PHP里面还需要进行怎样的处理:
其实很简单,两个函数:
1。preg_quote()
转义正则表达式中的特殊字符,详情参见 http://cn.php.net/preg_quote
这本来是PHP为PCRE的正则表达式准备的,不过这里也是可以用的。
2。mysql_real_escape_string()
这个函数是用来转义特殊的SQL字符,同时也可以防止SQL注入攻击。
PHP文档的说明为:
本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
它有一个兄弟,mysql_escape_string(),不过不能针对当前字符集进行处理,所以不够安全
另外如果使用mysqli的话,也可以使用mysqli_real_escape_string()。
综合起来就是这样:
$team_name = mysql_real_escape_string(preg_quote($team_name));
$query = " SELECT * FROM `teams` WHERE `team_name` REGEXP '{$team_name}' ";
然后再ooxx地去查询吧。。。
以前虽然一直知道MySQL有正则表达式,但是因为有LIKE在,所以一直还不需要用它。
正好这次有了机会,就去试试吧。
MySQL的关键字 REGEXP 允许在SQL语句中匹配忽略大小写的POSIX正则表达式。
其实MySQL的文档里面写得非常详细了,给出了很多的例子,可以在这里看到
http://dev.mysql.com/doc/refman/5.1/zh/regexp.html
这里主要是记录一下在PHP里面还需要进行怎样的处理:
其实很简单,两个函数:
1。preg_quote()
转义正则表达式中的特殊字符,详情参见 http://cn.php.net/preg_quote
这本来是PHP为PCRE的正则表达式准备的,不过这里也是可以用的。
2。mysql_real_escape_string()
这个函数是用来转义特殊的SQL字符,同时也可以防止SQL注入攻击。
PHP文档的说明为:
本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
它有一个兄弟,mysql_escape_string(),不过不能针对当前字符集进行处理,所以不够安全
另外如果使用mysqli的话,也可以使用mysqli_real_escape_string()。
综合起来就是这样:
$team_name = mysql_real_escape_string(preg_quote($team_name));
$query = " SELECT * FROM `teams` WHERE `team_name` REGEXP '{$team_name}' ";
然后再ooxx地去查询吧。。。
May
3
from http://my.donews.com/xinna/2007/05/11/post-070511-204304-648/
ubuntu下简单配置mysql数据库
一). ubuntu下mysql安装布局:
/usr/bin 客户端程序和mysql_install_db
/db 数据库和日志文件(自定义的)
/var/run mysqld 服务器
/etc/mysql mysql 配置文件my.cnf
/usr/share/mysql 字符集,基准程序和错误消息
/etc/init.d/mysql 启动mysql服务器
ubuntu下简单配置mysql数据库
一). ubuntu下mysql安装布局:
/usr/bin 客户端程序和mysql_install_db
/db 数据库和日志文件(自定义的)
/var/run mysqld 服务器
/etc/mysql mysql 配置文件my.cnf
/usr/share/mysql 字符集,基准程序和错误消息
/etc/init.d/mysql 启动mysql服务器
Apr
16
from http://hi.baidu.com/beidu/blog/item/e3d1b7fd5a4dd31309244d5e.html
php和mysql时间互换
在mysql中有三种时间字段类型:DATETIME,DATE和TIMESTAMP。
DATETIME以YYYY-MM-DD HH:MM:SS格式的字符串来保存数据;DATE则是只有年月日以YYYY-MM-DD形式的字串;TIMESTAMP类型和PHP中的TIMESTAMP类型名字一样,但是两者基本上是不同的。
php和mysql时间互换
在mysql中有三种时间字段类型:DATETIME,DATE和TIMESTAMP。
DATETIME以YYYY-MM-DD HH:MM:SS格式的字符串来保存数据;DATE则是只有年月日以YYYY-MM-DD形式的字串;TIMESTAMP类型和PHP中的TIMESTAMP类型名字一样,但是两者基本上是不同的。
Apr
9
使用MySQLi的时候发现,输入中文进行更新的时候就会出现类似
这样的错误,上网搜了一下,解决办法是采用gbk或UTF-8编码。
我把所有的php脚本转换成了utf-8编码,然后在new mysqli;后面加入
然后就正常了。
特别提示两点:
1。网页里面记得要在title前加上
2。上面命令里面是SET NAMES 'utf8',这里没有横杆!(不是utf-8)
引用
Data too long for column 'name' at row 1
这样的错误,上网搜了一下,解决办法是采用gbk或UTF-8编码。
我把所有的php脚本转换成了utf-8编码,然后在new mysqli;后面加入
@ $conn->query("SET NAMES 'utf8' ");
然后就正常了。
特别提示两点:
1。网页里面记得要在title前加上
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
2。上面命令里面是SET NAMES 'utf8',这里没有横杆!(不是utf-8)
Nov
19
花了一次选修课的时间完成了 "Felix的傻瓜服务器安装包"
包内集合了Apache 2.2.4 PHP 5.2.4 MySQL 5.0.45
最麻烦的是编写bat脚本,累!
包内集合了Apache 2.2.4 PHP 5.2.4 MySQL 5.0.45
最麻烦的是编写bat脚本,累!
Oct
6
【网络】IIS + PHP + MySQL 全攻略
关键字: Windows Server IIS 5.5 6.0 + PHP 5.2.4 + MySQL 5.0.22
关键字: Windows XP Server 2003 Internet Information Service
关键字: IIS无法解析PHP HTTP500错误
All by Felix021 2007-10-06
转贴请保持完整性并注明出处
http://19880711.com/blog/post/359/
事先声明一些东西:
关键字: Windows Server IIS 5.5 6.0 + PHP 5.2.4 + MySQL 5.0.22
关键字: Windows XP Server 2003 Internet Information Service
关键字: IIS无法解析PHP HTTP500错误
All by Felix021 2007-10-06
转贴请保持完整性并注明出处
http://19880711.com/blog/post/359/
事先声明一些东西: