以下是本节php面试题的全部内容。

1.表单中 get与post提交方法的区别?

答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.

2.session与cookie的区别?

答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放.

cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。

两者都可通过时间来设置时间长短.

3.数据库中的事务是什么?

答:事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。

4、能够使HTML和PHP分离开使用的模板?

答:

Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate

5、优化MYSQL数据库的方法?

答:

1)、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM

2)、使用连接(JOIN)来代替子查询:

a.删除没有任何订单客户:DELETE FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)

b.提取所有没有订单客户:SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)

c.提高b的速度优化:SELECT FROM customerinfo LEFT JOIN orderid customerinfo.customerid=orderinfo.customerid

WHERE orderinfo.customerid IS NULL

3)、使用联合(UNION)来代替手动创建的临时表

a.创建临时表:

SELECT name FROM `nametest` UNION SELECT username FROM `nametest2`

4)、事务处理:

a.保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败

复制代码 代码示例:

mysql_query("BEGIN");

mysql_query("INSERT INTO customerinfo (name) VALUES ('$name1')";

mysql_query("SELECT * FROM `orderinfo` where customerid=".$id");

mysql_query("COMMIT");

5)、锁定表,优化事务处理:

a.我们用一个 SELECT 语句取出初始数据,通过一些计算,用 UPDATE 语句将新值更新到表中。

包含有 WRITE 关键字的 LOCK TABLE 语句可以保证在 UNLOCK TABLES 命令被执行之前,

不会有其它的访问来对 inventory 进行插入、更新或者删除的操作

mysql_query("LOCK TABLE customerinfo READ, orderinfo WRITE");

mysql_query("SELECT customerid FROM `customerinfo` where id=".$id);

mysql_query("UPDATE `orderinfo` SET ordertitle='$title' where customerid=".$id);

mysql_query("UNLOCK TABLES");

6)、使用外键,优化锁定表

a.把customerinfo里的customerid映射到orderinfo里的customerid,

任何一条没有合法的customerid的记录不会写到orderinfo里

CREATE TABLE customerinfo

(

customerid INT NOT NULL,

PRIMARY KEY(customerid)

)TYPE = INNODB;

CREATE TABLE orderinfo

(

orderid INT NOT NULL,

customerid INT NOT NULL,

PRIMARY KEY(customerid,orderid),

FOREIGN KEY (customerid) REFERENCES customerinfo

(customerid) ON DELETE CASCADE

)TYPE = INNODB;

注意:'ON DELETE CASCADE',该参数保证当customerinfo表中的一条记录删除的话同时也会删除order

表中的该用户的所有记录,注意使用外键要定义事务安全类型为INNODB;

7)、建立索引:

a.格式:

(普通索引)->

创建:CREATE INDEX ON tablename (索引字段)

修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)

创表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段))

(唯一索引)->

创建:CREATE UNIQUE ON tablename (索引字段)

修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)

创表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段))

(主键)->

它是唯一索引,一般在创建表是建立,格式为:

CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])

8)、优化查询语句

a.最好在相同字段进行比较操作,在建立好的索引字段上尽量减少函数操作

例子1:

SELECT * FROM order WHERE YEAR(orderDate)<2008;(慢)

SELECT * FROM order WHERE orderDate

例子2:

SELECT * FROM order WHERE addtime/7<24;(慢)

SELECT * FROM order WHERE addtime<24*7;(快)

例子3:

SELECT * FROM order WHERE title like "%good%";

SELECT * FROM order WHERE title>="good" and name

6、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)

答:now(),dateformat()

这份php面试题,重点考核了mysql性能优化方面的内容,看着像是招会php编程的mysql数据库的DBA,哈~~

php面试编程题_PHP程序员面试题(经典汇总,mysql为主)相关推荐

  1. 程序员笔试题收集汇总(三)

    相关文章: 程序员笔试题收集汇总(一) http://blog.csdn.net/youyou1543724847/article/details/52383530 程序员笔试题收集汇总(二) htt ...

  2. C语言中兴面试编程题,中兴一套笔试题及部分答案

    A .适用于最大似然准则 B .适用于最小似然准则 C .适用于似然比判决准则 D .适用于最大差错概率准则 3.下面关于源端口地址和目标端口地址的描述中,正确的是(A ) A .在TCP/UDP 传 ...

  3. 100元买鸡算法题 php程序员面试题

    示例代码 <?php/*** num y 母鸡** num x 公鸡** num z 小鸡*/for($y=0;$y<=20;$y++){for($x=0;$x<=(100/3);$ ...

  4. 程序员面试题经典问题——耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:123凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。

    package com.softeem.project1;public class Test1 {public static void main(String[] args) {//定义数组保存13位 ...

  5. 标 题: 腾讯面试题目(PHP程序员)

    发信人: max19830115 (max), 信区: Programming 标  题: 腾讯面试题目(PHP程序员) 发信站: 水木社区 (Mon Apr 18 16:26:07 2011), 站 ...

  6. 程序员面试题精选100题(03)-子数组的最大和[算法]

    题目:输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 例如输入的数组为1, -2, 3, ...

  7. 【阅读心得】Python编程无师自通——专业程序员的养成

    读书笔记: 笔者是一个稍微有点编程基础的人,学习python一开始是从吴恩达的视频入门的,但是直接套用框架,使用模块,对python的语法却不甚了解,我也试过直接去廖雪峰的python学习网站上面学习 ...

  8. 程序员面试题精选100题

    程序员面试题精选100题(01)-把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向. 比如将二元查找树   ...

  9. 程序员面试题精选算法58题加答案

    这篇文章总结的非常好,以防以后找不到,在此转载. 程序员面试题精选(01)-把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点 ...

最新文章

  1. ceph bluestore源码分析:admin_socket实时获取内存池数据
  2. springboot图书管理怎么实现借书时间到期提醒_今日图书丨有了这个,图书管理再也没烦恼!...
  3. 利用ES6-Promise()方法封装原始jsonp实现跨域请求公用方法(告别使用JQuery封装好的jsonp)
  4. C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码
  5. vscode+TCC快捷编译c语言
  6. javaEE项目发布方法
  7. HSV颜色识别demo
  8. 删数问题 山东理工oj2072(贪心)
  9. 遗传算法的Python实现(通俗易懂)
  10. 【eoeAndroid索引】史上最牛最全android开发知识汇总
  11. Java-图片处理 Gif转Jpg
  12. 自比毕加索,揭秘神秘的“苹果大学”
  13. 用坚果云同步mysql_坚果云安装完成以后, 如何同步文件?
  14. 网站的架构CS和中间件
  15. 分花生游戏 (博弈论)
  16. Office Word和Excel的工具栏显示不全,只显示文件、绘图和帮助的解决办法
  17. 王道考研 操作系统知识点汇总(目录+思维导图)
  18. 近几年天猫双十一交易额数据是多少
  19. 电脑音箱没有声音,音量图标上有叉
  20. 用计算机获取信息,学会用CMD命令获取计算机的所有信息,菜鸟头衔马上崩塌

热门文章

  1. 卸载一直在创建还原点_如何创建系统还原点以及如何恢复?
  2. 2018计算机河北省高考试题,2018年河北高考物理压轴试题【含答案】
  3. springcloud gateway 使用nacos 作为配置中心 和 注册中心
  4. springmvc限流解决方案
  5. Android之Junit测试类
  6. mongoose populate 返回 指定 字段
  7. 发布服务器 bugzilla, streber 数据库备份方案
  8. Android使用webview控件加载本地html,通过Js与后台Java实现数据的传递
  9. hubbledotnet mysql_HubbleDotNet 简介
  10. java enumerator_NSEnumerator使用