设为首页 加入收藏

TOP

2017最新PHP面试题(一)
2017-10-10 08:32:09 】 浏览:4931
Tags:2017 最新 PHP 试题

这几天在面试,下面分享一下这几天面试所遇到的笔试题,目前还不打算工作,面试题会持续更新的,有些不想写答案了,有心的可以自己看着面试题查一下感觉记忆更深点。下面分享一下这几天遇到的php面试题。

掌贝面试题

1、分别列出如下类型的有符号的和无符号的TINYINT、SMALLINT、MEDLUMINT、INT

TINYINT-2^7 - 2^7-10 ~ 2^8-1

SMALLINT-2^15 - 2^15-1 0 ~ 2^16-1

MEDIUMINT-2^23 - 2^23-1 0 ~ 2^24-1

INT-2^31 - 2^31-1 0 ~ 2^32-1

 

2、PHP调试MYSQL储存过程的两种方法

php调用mysql存储过程和函数的方法一:

 程序代码

$host="localhost";

$user="root";

$password="11212";

$db="samp_db";

$dblink=mysql_connect($host,$user,$password)

or die("can't connect to mysql");

mysql_select_db($db,$dblink)

or die("can't select samp_db");

$res=mysql_query("set @a=$password",$dblink);

$res=mysql_query("call aa(@a)",$dblink);

$res=mysql_query("select @a",$dblink);

$row=mysql_fetch_row($res);

echo $row[0];

 

 

php调用mysql存储过程和函数方法二:此方法需要db_mysqli.dll的支持!

调用带有select语句的存储过程就出现 PROCEDURE p can’t return a result set in the given context的错误。google了半天,在mysql官网上找到一些说法,db_mysql的模块不支持存储过程调用,解决方法是用db_mysqli。测试了一下,果然可以了。

用法比较简单,没啥好说的,从网上copy一段代码吧:

 程序代码

<?php

 

$link = mysqli_connect(

'localhost',

'root',

'root',

'db_name');

if (!$link) {

printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());

exit;

}

 

if ($result = mysqli_query($link, "call se_proc('crm')")) {

 

while( $row = mysqli_fetch_array($result) ){

echo ($row[0]. "--------- SR. " . $row[1] . "

");

}

 

mysqli_free_result($result);

}

 

mysqli_close($link);

?>

3、MYSQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现的)?为什么是这样子的?

 Innodb的行锁是加在索引实现的;

   原因是:innodb是将primary key index和相关的行数据共同放在B+树的叶节点;innodb一定会有一个primary key,secondary index查找的时候,也是通过找到对应的primary,再找对应的数据行;

4、MYSQL数据库中有A、B两张表,A表中存储有3000W个手机号,B表中存储有1000W个手机号,用SQL代码实现交、并、差,如何做才能最快最高效的得到结果集?

5、在java script中如何声明一个类?

var my = new MyClass();

6、null和undefined的区别是什么?

undefined表示变量声明但未初始化时的值,

null表示准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null值表示一个空对象指针。

任何时候都不建议显式的设置一个变量为undefined,但是如果保存对象的变量还没有真正保存对象,应该设置成null。

实际上,undefined值是派生自null值的,ECMAScript标准规定对二者进行相等性测试要返回true,即 

 

alert(null==undefined);  // true

 

7、下面的代码,多久之后会弹出'end'?为什么?

var t=true

setTimeout{function(){t=false;},2000};

while(t){}

alert('end')

典型的死循环……js是单线程执行的,while里面死掉的时候setTimeout里面的函数是没机会执行的。

8、请问PHP中echo、print、print_r有什么区别?

echo是PHP语句, print和print_r是函数
print_r() 可以打印出复杂类型变量的值(如数组,对象)  
echo     输出一个或者多个字符串,语句没有返回值,函数可以有返回值(即便没有用)  
print()    只能打印出简单类型变量的值(如int,string)  

9、谈谈COOKIE与SESSION的区别,以及如何修改SESSION的生存时间

1.存放位置:

  session保存在服务器,cookie保存在客户端

2.存放的形式:

  session是以对象的形式保存在服务器,cookie以字符串的形式保存在客户端

3.用途:

  session适合做客户的身份验证,cookie适合保存用户的个人设置,爱好等

4.路径:

  session不能区分路径,同一用户在访问一个网站期间,所有的session在任何一个地方都可以访问到;cookie中如果设置了参数路径,那么同一个网站下的cookie互相访问不到

5.安全性:

  cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,session较cookie更安全一些

6.大小及数量限制:

  单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。不同浏览器所含cookie的最大个数不同,一般30到50个;一般认为session没有大小限制

修改session生存时间

方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache

  方法2:$s

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇PHP迭代与递归实现无限级分类 下一篇PHP设计——单例模式与工厂模式

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目