Code For Colorful Life
关系数据库理论基础知识重点备忘
关系的三类完整性约束
- 实体完整性
若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。
- 参照完整性
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应(或者说F引用了K),则对于R中每个元组在F上的值必须为:或者取空值;或者等于S中某个元组的主码值。
- 用户定义的完整性
针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
Read more...
PHP扩展结构
必要的文件
- extname.c
- php_extname.h
- config.m4
- config.w32
php_extname.h
- 一些必要的宏定义
- 函数声明,注意自己写的提供给脚本使用的函数也应该在这里进行声明
- 全局变量定义
Read more...
PHP Ext API
关于本函数列表
为了帮助php开发者更方便的开发扩展,这里整理了一份ZEND API的函数列表,由于本人能力有限,这些并不是全部,我打算在git上开个项目,来撰写这些API的使用范例,如果你对这个项目感兴趣,并想贡献一份力量,请发email给我yangrokety@gmail.com
已在git上立项:PHP ZEND API
输出相关 About Output
php_printf(format, var)
PHPWRITE(string, strlen(string))
spprintf(char **, max, format, var...)
:使用该函数前必须先分配好第一个参数的内存空间snprintf(char *, length, format, var...)
:会动态地为第一个参数分配内存
上述3、4函数详细讨论:Difference between sprintf, snprintf and spprintf
Read more...
config.m4一点笔记
静态编译
即不生成so
动态转载文件,而是编译进PHP中。
使用./configure --help
可以查看到会被静态编译进PHP的扩展,当然即使扩展出现在该列表中,你依然可以使用--with-extName=shared
使其编译为动态模块。
执行./buildconf --force
命令重新生成configure
文件,但请将你要静态编译进PHP的扩展放到phpsrc/ext
目录下。
Read more...
GoLang 基础笔记
字符串
- 使用”和`定义,类型:string;
- 无法修改(类似C语言中的字符串常量
char *str="Hello"
); - 可进行切片操作,例如:
str[startIndex:endIndex+1]
。
Read more...
SSO 实现方案探讨
本博文主要针对多个相互信任的网站实现单点login后其它站点也login,单点logout后其它站点也logout的解决方案。
本方案学习自:Simple Single Sign-On for PHP (Ajax compatible),但实现方式与之有些不同:
- Broker可以存储用户信息,这样,当用户在登陆Broker之后所进行的操作都不需要请求SSO以检查用户是否退出了;
- 当用户从某个Broker退出时,该Broker先自己执行用户退出工作,之后发送退出请求到SSO,SSO通知其它已经登陆了的Broker执行退出工作。
Read more...
urlencode和rawurlencode区别
urlencode()
:用于编码URL中的参数部分。
rawurlencode()
:用于编码URL路径部分。
Read more...