CLI 与CGI的区别
PHP CLI版本有些类似于PHP的CGI模式,尽管它们之间有很多共同的行为,但CLI和CGI是分属于不同的SAPI的。
CLI没有用到GET或POST表单处理,无MIME的头信息输出,以及其他隐含的SAPI实现。
PHP CLI版本有些类似于PHP的CGI模式,尽管它们之间有很多共同的行为,但CLI和CGI是分属于不同的SAPI的。
CLI没有用到GET或POST表单处理,无MIME的头信息输出,以及其他隐含的SAPI实现。
PHP CLI模式
这也是昨天笔试的时候考的题目,考了两次,依次是问PHP一半可以运行在那两种模式下面,答案当然就是CLI和CGI模式了。但是后面的附加题问CLI模式与CGI模式的区别,还要用例子说明,我就不理解这个公司对大学实习生要求这个有什么意义了,区别也还罢了,还要写例子,我只能说我功力不够了。
还是本着乐于折腾的原则,查找手册,研究一下这个CLI模式。
这也是昨天笔试的时候考的题目,考了两次,依次是问PHP一半可以运行在那两种模式下面,答案当然就是CLI和CGI模式了。但是后面的附加题问CLI模式与CGI模式的区别,还要用例子说明,我就不理解这个公司对大学实习生要求这个有什么意义了,区别也还罢了,还要写例子,我只能说我功力不够了。
还是本着乐于折腾的原则,查找手册,研究一下这个CLI模式。
笔试时遇到了考察这两个函数的题目,本着乐于折腾的原则,写下这些东西。
htmlentities() 函数
定义
htmlentities() 函数把字符转换为 HTML 实体。
语法
htmlentities(string,quotestyle,character-set)
htmlentities() 函数
定义
htmlentities() 函数把字符转换为 HTML 实体。
语法
htmlentities(string,quotestyle,character-set)
× 为根据公司考试协议自我和谐。
昨天去笔试一家公司(略去公司名称),面世的职位是软件开发之 php方向,本以为比试会比较容易的,但是我和同行的工作室的童鞋都低估了PHP的题目。早上×点钟发了试卷,试卷很厚,分了×个方向,当然我直接看了PHP的试卷。话说我比试的那个考场除了我们自己几个人其他大部分都是华科武大的,总体人说也不是很多,分析应该是因为这个考场考的方向除了JAVA其他的都是需要学生自学的,学校是不会开什么PHP,JS之类的课程的。所以不想普通的C/C++那么火爆。
昨天去笔试一家公司(略去公司名称),面世的职位是软件开发之 php方向,本以为比试会比较容易的,但是我和同行的工作室的童鞋都低估了PHP的题目。早上×点钟发了试卷,试卷很厚,分了×个方向,当然我直接看了PHP的试卷。话说我比试的那个考场除了我们自己几个人其他大部分都是华科武大的,总体人说也不是很多,分析应该是因为这个考场考的方向除了JAVA其他的都是需要学生自学的,学校是不会开什么PHP,JS之类的课程的。所以不想普通的C/C++那么火爆。
订阅了世界经理人的邮件,早上看到一篇文章,感觉说的有一定的道理,自勉。
==================================华丽分割线==================================
网友纸条:请允许我称呼您为黄老师,一直关注您的博客聆听您的教导。此刻站在人生十字路口,感到只有您才可指点迷津赠本人一言,勉励前行。本人创业心很强,本科毕业在一高科技私企参加工作近两年。父母务农,家境很差,工资暂时不高。现年龄阶段各种问题都逼着自己,压力很大。
==================================华丽分割线==================================
网友纸条:请允许我称呼您为黄老师,一直关注您的博客聆听您的教导。此刻站在人生十字路口,感到只有您才可指点迷津赠本人一言,勉励前行。本人创业心很强,本科毕业在一高科技私企参加工作近两年。父母务农,家境很差,工资暂时不高。现年龄阶段各种问题都逼着自己,压力很大。
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高。
存储过程
====================================================================================
HELLO WORD 打印HELLO WORD
====================================================================================
DELIMITER // /*将结束符设置成为//防止过程语句中的 ; 导致提前结束*/
CREATE PROCEDURE phelloword()
BEGIN
SELECT 'Hello Word!' AS F;
END//
====================================================================================
HELLO WORD 打印HELLO WORD
====================================================================================
DELIMITER // /*将结束符设置成为//防止过程语句中的 ; 导致提前结束*/
CREATE PROCEDURE phelloword()
BEGIN
SELECT 'Hello Word!' AS F;
END//
因为需要所以收藏
──────────────官方地址────────────
教育网环境,linux下面用的firefox直接下载的。
官方得不用说很慢。大概要20天才能下完。
用DVD的种子下载速度在70K左右。
sohu在100k。
163比较慢10+k的样子。
中国科大的因为是教育网的原因吧速度飞快一开始,直接彪到1500k,但后来速度就不行了。
──────────────官方地址────────────
——————————国内下载地址——————————
centos5.4下载
http://centos.ustc.edu.cn/centos/5.4/isos/
http://mirrors.sohu.com/centos/5.4/isos/
http://mirrors.163.com/centos/5.4/isos/
教育网环境,linux下面用的firefox直接下载的。
官方得不用说很慢。大概要20天才能下完。
用DVD的种子下载速度在70K左右。
sohu在100k。
163比较慢10+k的样子。
中国科大的因为是教育网的原因吧速度飞快一开始,直接彪到1500k,但后来速度就不行了。
试验 测试 having 语句的 与where语句的区别与写法
数据
table 'SC'
cno sno grade
1 1 56
2 1 12
3 1 45
4 4 56
1 2 45
5 2 45
3 2 45
4 3 66
题目:
在上述的表中查询 有选了三门以上课程的以及每门课程成绩是大于30的学生的学号以及所选课程的门数
即查询 按照SNO分组后 cno数目大于等于3切每行中grade要大于30,返回查询到的sno以及对应sno的cno数目。
测试环境:LAMP
工具:phpmyadmin
查询语句1:
SELECT sno,count(cno) FROM `sc`
group by sno
having count(*)>=3 and grade>30
结果:#1054 - Unknown column 'grade' in 'having clause'
报错,所以having语句中执行 count(*)>=3 and grade>30 是不行的。
查询语句2:
SELECT sno,count(cno) FROM `sc`
WHERE grade>30
GROUP BY sno
HAVING count(*)>=3
结果:
sno count(cno)
2 3
对照输入数据,结果是正确的。
分析原因:
为什么两种查询方法只有第二种可以?
根据查询资料,having于where区别很小,几乎所有的where查询都可以想办法用having代替,唯一的差别是where对过滤行,having过滤分组。
having 在有group的前提下,是过滤分组好了之后的集合数据,在组的基础上,根据组的聚集值进行过滤,不能根据具体的行进行过滤。也就是说,在有group的前提下,having后面只能跟上AVG(),COUNT()等等聚集函数,而不能跟 grade>30 这种行操作的语句。
并且where在数据分组前过滤限制,having在数据分组后进行过滤。where过滤掉的数据不会包含在分组中。
并且,在意般的DBMS中,没有GROUP 语句的话,having和where可混淆使用,那个都一样。
例如:
SELECT grade FROM `sc`
HAVING grade>45
结果:
grade
56
56
66
但是这是一种很不好的习惯。
数据
table 'SC'
cno sno grade
1 1 56
2 1 12
3 1 45
4 4 56
1 2 45
5 2 45
3 2 45
4 3 66
题目:
在上述的表中查询 有选了三门以上课程的以及每门课程成绩是大于30的学生的学号以及所选课程的门数
即查询 按照SNO分组后 cno数目大于等于3切每行中grade要大于30,返回查询到的sno以及对应sno的cno数目。
测试环境:LAMP
工具:phpmyadmin
查询语句1:
SELECT sno,count(cno) FROM `sc`
group by sno
having count(*)>=3 and grade>30
结果:#1054 - Unknown column 'grade' in 'having clause'
报错,所以having语句中执行 count(*)>=3 and grade>30 是不行的。
查询语句2:
SELECT sno,count(cno) FROM `sc`
WHERE grade>30
GROUP BY sno
HAVING count(*)>=3
结果:
sno count(cno)
2 3
对照输入数据,结果是正确的。
分析原因:
为什么两种查询方法只有第二种可以?
根据查询资料,having于where区别很小,几乎所有的where查询都可以想办法用having代替,唯一的差别是where对过滤行,having过滤分组。
having 在有group的前提下,是过滤分组好了之后的集合数据,在组的基础上,根据组的聚集值进行过滤,不能根据具体的行进行过滤。也就是说,在有group的前提下,having后面只能跟上AVG(),COUNT()等等聚集函数,而不能跟 grade>30 这种行操作的语句。
并且where在数据分组前过滤限制,having在数据分组后进行过滤。where过滤掉的数据不会包含在分组中。
并且,在意般的DBMS中,没有GROUP 语句的话,having和where可混淆使用,那个都一样。
例如:
SELECT grade FROM `sc`
HAVING grade>45
结果:
grade
56
56
66
但是这是一种很不好的习惯。








