php面試題(二)附答案

2021-09-25 04:51:10 字數 2862 閱讀 9587

1.單引號和雙引號的用法

雙引號串中的內容可以被解釋而且替換,而單引號串中的內容總被認為是普通字元

2.web開發中的安全性問題

1. sql注入攻擊

2. 資料庫操作安全,update、 delete、insert的操作沒有限制使用者操作許可權,這將是一件很危險的事情。

3. 沒有驗證使用者http請求的方式 post 或者 get,get請求被合法通過

4. 沒有驗證表單**的唯一性,不能識別是合法的表單提交還是黑客偽造的表單提交!

3.簡述gbk、gb2312、big5 、gb18030

gb2312支援的漢字較少

gbk是相比gb2312漢字更為豐富

gb18030相比gbk增加了一些少數名族漢字漢字型檔更為多樣,但是常人很難用到,一般簡體中文使用gbk。

正體中文使用big5.

4.如果某段與資料庫互動的程式執行較慢該如何處理

一是首先提高資料庫的查詢速度,比如增加索引,優化表的結構.

二是優化程式**,如果查詢比較多,可以盡量用條件查詢,減少查詢語句,比如能用一條查詢語句就不用兩條.

三就是提高伺服器的速度,優化伺服器,把不必要的程序關掉。

5.儲存過程的使用場景

sql難以實現的複雜邏輯或計算

高併發中避免使用儲存過程

6.get與post提交的區別

get是傳送請求http協議通過url引數傳遞進行接收,

post是實體資料,可以通過表單提交大量資訊.

7.session與cookie的區別?

session:儲存使用者訪問的全域性唯一變數,儲存在伺服器上的php指定的目錄中的(session_dir)的位置進行的存放

cookie:用來儲存連續訪問乙個頁面時所使用,是儲存在客戶端,對於cookie來說是儲存在使用者win的temp目錄中的。

兩者都可通過時間來設定時間長短

8.優化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 fromnametestunion select username fromnametest2

4、事務處理:

a.保證資料完整性,例如新增和修改同時,兩者成立則都執行,一者失敗都失敗

mysql_query(「begin」);

mysql_query(「insert into customerinfo (name) values ('nam

e1′)

";my

sqlq

uery

("se

lect

∗fro

m『or

deri

nfo『

wher

ecus

tome

rid=

".

name1')"; mysql_query("select * from `orderinfo` where customerid=".

name1′

)";m

ysql

q​ue

ry("

sele

ct∗f

rom『

orde

rinf

o『wh

erec

usto

meri

d=".

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 fromcustomerinfowhere id=」.id)

;mys

qlqu

ery(

"upd

ate『

orde

rinf

o『se

tord

erti

tle=

′id); mysql_query("update `orderinfo` set ordertitle='

id);my

sqlq

​uer

y("u

pdat

e『or

deri

nfo『

seto

rder

titl

e=′

PHP面試題(附答案)

1.在php中,當前指令碼的名稱 不包括路徑和查詢字串 記錄在預定義變數 1 中 而鏈結到當前頁面的的前一頁面url記錄在預定義變數 2 中 script name也可以 其它的見參考手冊 語言參考 變數 預定義變數 當前執行指令碼的絕對路徑名 d inetpub wwwroot php est.p...

PHP面試題系列五 附答案

一 基礎題 1.寫出如下程式的輸出結果 str1 null str2 false echo str1 str2 相等 不相等 str3 str4 0 echo str3 str4 相等 不相等 str5 0 str6 0 echo str5 str6 相等 不相等 2.寫出如下程式的輸出結果 a1 ...

php面試題彙總二 基礎篇附答案

1.在php中,當前指令碼的名稱 不包括路徑和查詢字串 記錄在預定義變數 1 中 而鏈結到當前頁面的url記錄在預定義變數 2 中。答 echo server php self echo server http referer 2 陣列函式 arsort 的作用是 6 語句 error report...