昨日按上了Ubuntu7.10.不大会用。启动超慢。还想要在上面按个php的开发环境。
» 阅读全文
Submitted by 淡水河边 on 2008, March 3, 9:24 AM
昨日按上了Ubuntu7.10.不大会用。启动超慢。还想要在上面按个php的开发环境。
» 阅读全文
Submitted by 淡水河边 on 2008, February 29, 1:13 PM
岁月无痕,青春有声
» 阅读全文
Submitted by 淡水河边 on 2008, February 27, 3:31 PM
php5类学习笔记
» 阅读全文
Submitted by 淡水河边 on 2008, February 26, 3:14 PM
来源:http://book.csdn.net/bookfiles/526/
目录
9.1 PHP的mysqli扩展
9.2 MySQL视图的应用
9.3 MySQL存储过程
9.4 MySQL触发器
9.5 MySQL事务
» 阅读全文
Submitted by 淡水河边 on 2008, February 25, 9:42 PM
时间,滴答滴答的流逝。
应该没有多少时间去浪费了。
这只是一场杜撰的生活,
一出两个人出演的戏码。
只是我不是导演,无法把握剧情的发展。
我相信奇迹,
但不会在奢望发生在我身上。
看着它发生也不错,
笑一笑,瞬间百味。
落幕,
别人走别人的,
而我已经停留过。
也许我该上床睡觉了,
因日子还要继续。
我将安睡,同清醒一起。
Submitted by 淡水河边 on 2008, February 14, 12:19 PM
语法:
GROUP_CONCAT([DISTINCT] expr [,expr ...][ORDER BY {unsigned_integer | col_name | expr}[ASC | DESC] [,col_name ...]][SEPARATOR str_val])
下面演示一下这个函数,先建立一个学生选课表student_courses,并填充一些测试数据。
若要查找学生ID为2所选的课程,则使用下面这条SQL:
输出结果有3条记录,说明学生ID为2的学生选了3、4、5这3门课程。
放在PHP里,必须用一个循环才能取到这3条记录,如下所示:
而如果采用GROUP_CONCAT()函数和GROUP BY语句就显得非常简单了,如下所示:
这样php里处理就简单了:
分隔符还可以自定义,默认是以“,”作为分隔符,若要改为“|||”,则使用SEPARATOR来指定,例如:
除此之外,还可以对这个组的值来进行排序再连接成字符串,例如按courses_id降序来排:
Submitted by 淡水河边 on 2008, February 13, 10:28 AM
先看段代码
chr(0)相关知识:
null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000
虽然chr(0)不会显示出什么,但是他是一个字符。
当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。而值为0x81到0xff与0x00组合始终都显示为“空”
根据这一特点,在substr的结果后面补上一个chr(0),就可以防止出现乱码了
淡水ps:
如果是UTF-8,UTF-8中的汉字是3个字节的,截取的长度尽量去3的倍数,以避免乱码的产生
Submitted by 淡水河边 on 2008, February 4, 6:38 PM
明天回家过春节了。
换个皮肤。
票没买,东西没收拾。
不过,肯定一路顺风
Submitted by 淡水河边 on 2008, January 27, 9:58 PM
heredoc和注释的灵活运用
» 阅读全文
Submitted by 淡水河边 on 2008, January 27, 9:52 PM
数据库存储中的数据类型与大小各异。有些地方只存储数字类型,有些只存储文本类型,有些二者而兼之。而很多数据库支持各种专用类型:日期和时间类型,二进制字符类型以及布尔类型。
选择数据类型与数据相匹配是数据库设计中最为重要的部分,因为这种类型将会影响到RDBMS的效率与性能。所以,对RDBMS的数据类型选择应给予足够的重视。
这就是编写本文的主要目的。表A将列举了MySQL支持的绝大部分重要的数据类型,而MySQL是当前最为流行的免费RDBMS。文中还描述了何时与如何使用这些数据类型。这将有助于建立一个数据库的合理设计。
表 A
|
数据类型 |
描述 |
字节 |
推荐使用 |
|
SMALLINT |
整数,从-32000到 +32000范围 |
2 |
存储相对比较小的整数。 比如: 年纪,数量 |
|
INT |
整数,从-2000000000 到 +2000000000 范围 |
4 |
存储中等整数 例如: 距离 |
|
BIGINT |
不能用SMALLINT 或 INT描述的超大整数。 |
8 |
存储超大的整数 例如: 科学/数学数据 |
|
FLOAT |
单精度浮点型数据 |
4 |
存储小数数据 例如:测量,温度 |
|
DOUBLE |
双精度浮点型数据 |
8 |
需要双精度存储的小数数据 例如:科学数据 |
|
DECIMAL |
用户自定义精度的浮点型数据 |
变量;取决于精度与长度 |
以特别高的精度存储小数数据。 例如:货币数额,科学数据 |
|
CHAR |
固定长度的字符串 |
特定字符串长度(高达255字符) |
存储通常包含预定义字符串的变量 例如: 定期航线,国家或邮编 |
|
VARCHAR |
具有最大限制的可变长度的字符串 |
变量; 1 + 实际字符串长度 (高达 255 字符) |
存储不同长度的字符串值(高达一个特定的最大限度). 例如:名字,密码,短文标签 |
|
TEXT |
没有最大长度限制的可变长度的字符串 |
Variable; 2 +聽 actual string length |
存储大型文本数据 例如: 新闻故事,产品描述 |
|
BLOB |
二进制字符串 |
变量;2 + 实际字符串长度 |
存储二进制数据 例如:图片,附件,二进制文档 |
|
DATE |
以 yyyy-mm-dd格式的日期 |
3 |
存储日期 例如:生日,产品满期 |
|
TIME |
以 hh:mm:ss格式的时间 |
3 |
存储时间或时间间隔 例如:报警声,两时间之间的间隔,任务开始/结束时间 |
|
DATETIME |
以yyyy-mm-ddhh:mm:ss格式结合日期和时间 |
8 |
存储包含日期和时间的数据 例如:提醒的人,事件 |
|
TIMESTAMP |
以yyyy-mm-ddhh:mm:ss格式结合日期和时间 |
4 |
记录即时时间 例如:事件提醒器,“最后进入”的时间标记 |
|
YEAR |
以 yyyy格式的年份 |
1 |
存储年份 例如:毕业年,出生年 |
|
ENUM |
一组数据,用户可从中选择其中一个 |
1或 2个字节 |
存储字符属性,只能从中选择之一 例如:布尔量选择,如性别 |
|
SET |
一组数据,用户可从中选择其中0,1或更多。 |
从1到8字节;取决于设置的大小 |
存储字符属性,可从中选择多个字符的联合。 例如:多选项选择,比如业余爱好和兴趣。 |
对于一个完整的列表和详细描述,可以查看MySQL manual。你也可以阅读文章Choosing the Right Type for a Column。
from:http://www.aslibra.com/blog/read.php?370