成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

一份萬(wàn)網(wǎng)的PHP筆試題及答案

瀏覽:7日期:2022-09-14 10:32:49
基礎(chǔ)題

1.表單中 get與post提交方法的區(qū)別?

get是發(fā)送請(qǐng)求HTTP協(xié)議通過(guò)url參數(shù)傳遞進(jìn)行接收,而post是實(shí)體數(shù)據(jù),可以通過(guò)表單提交大量信息。

2.session與cookie的區(qū)別?

session:儲(chǔ)存用戶訪問(wèn)的全局唯一變量,存儲(chǔ)在服務(wù)器上的php指定的目錄中的(session_dir)的位置進(jìn)行的存放。

cookie:用來(lái)存儲(chǔ)連續(xù)訪問(wèn)一個(gè)頁(yè)面時(shí)所使用,是存儲(chǔ)在客戶端,對(duì)于Cookie來(lái)說(shuō)是存儲(chǔ)在用戶WIN的Temp目錄中的。

兩者都可通過(guò)時(shí)間來(lái)設(shè)置時(shí)間長(zhǎng)短。

3.數(shù)據(jù)庫(kù)中的事務(wù)是什么?

事務(wù)(transaction)是作為一個(gè)單元的一組有序的數(shù)據(jù)庫(kù)操作。如果組中的所有操作都成功,則認(rèn)為事務(wù)成功,即使只有一個(gè)操作失敗,事務(wù)也不成功。如果所有操作完成,事務(wù)則提交,其修改將作用于所有其他數(shù)據(jù)庫(kù)進(jìn)程。如果一個(gè)操作失敗,則事務(wù)將回滾,該事務(wù)所有操作的影響都將取消。

簡(jiǎn)述題

1.用PHP打印出前一天的時(shí)間格式是2006-5-10 22:21:21

echo date(’Y-m-d H:i:s’, strtotime(’-1 days’));

2.echo(),print(),print_r()的區(qū)別

echo是PHP語(yǔ)句, print和print_r是函數(shù),語(yǔ)句沒(méi)有返回值,函數(shù)可以有返回值(即便沒(méi)有用);print() 只能打印出簡(jiǎn)單類(lèi)型變量的值(如int,string);print_r() 可以打印出復(fù)雜類(lèi)型變量的值(如數(shù)組,對(duì)象);echo 輸出一個(gè)或者多個(gè)字符串。

3.能夠使HTML和PHP分離開(kāi)使用的模板

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

4、使用哪些工具進(jìn)行版本控制?

cvs,svn,vss,git

5.如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?

echo strrev($a);

6.優(yōu)化MYSQL數(shù)據(jù)庫(kù)的方法

1)、選取最適用的字段屬性,盡可能減少定義字段長(zhǎng)度,盡量把字段設(shè)置NOT NULL,例如’省份,性別’,最好設(shè)置為ENUM

2)、使用連接(JOIN)來(lái)代替子查詢:

a.刪除沒(méi)有任何訂單客戶:

DELETE FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)

b.提取所有沒(méi)有訂單客戶:

SELECT FROM customerinfo WHERE customerid NOT in(SELECT customerid FROM orderinfo)

c.提高b的速度優(yōu)化:

SELECT FROM customerinfo LEFT JOIN orderid customerinfo.customerid=orderinfo.customeridWHERE orderinfo.customerid IS NULL

3)、使用聯(lián)合(UNION)來(lái)代替手動(dòng)創(chuàng)建的臨時(shí)表

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

4)、事務(wù)處理:

a.保證數(shù)據(jù)完整性,例如添加和修改同時(shí),兩者成立則都執(zhí)行,一者失敗都失敗

mysql_query('BEGIN');mysql_query('INSERT INTO customerinfo (name) VALUES (’$name1’)';mysql_query('SELECT * FROM `orderinfo` where customerid='.$id');mysql_query('COMMIT');

5)、鎖定表,優(yōu)化事務(wù)處理:

a.我們用一個(gè) SELECT 語(yǔ)句取出初始數(shù)據(jù),通過(guò)一些計(jì)算,用 UPDATE 語(yǔ)句將新值更新到表中。包含有 WRITE 關(guān)鍵字的 LOCK TABLE 語(yǔ)句可以保證在 UNLOCK TABLES 命令被執(zhí)行之前,不會(huì)有其它的訪問(wèn)來(lái)對(duì) inventory 進(jìn)行插入、更新或者刪除的操作

mysql_query('LOCK TABLE customerinfo READ, orderinfo WRITE');mysql_query('SELECT customerid FROM `customerinfo` wheremso-spacerun: yes'> mysql_query('UPDATE `orderinfo` SET ordertitle=’$title’ where customerid='.$id);mysql_query('UNLOCK TABLES');

6)、使用外鍵,優(yōu)化鎖定表

a.把customerinfo里的customerid映射到orderinfo里的customerid,任何一條沒(méi)有合法的customerid的記錄不會(huì)寫(xiě)到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’,該參數(shù)保證當(dāng)customerinfo表中的一條記錄刪除的話同時(shí)也會(huì)刪除order表中的該用戶的所有記錄,注意使用外鍵要定義事務(wù)安全類(lèi)型為INNODB;

7)、建立索引:

a.格式:(普通索引)->創(chuàng)建:CREATE INDEX <索引名> ON tablename (索引字段)修改:ALTER TABLE tablename ADD INDEX [索引名] (索引字段)創(chuàng)表指定索引:CREATE TABLE tablename([...],INDEX[索引名](索引字段))

(唯一索引)->創(chuàng)建:CREATE UNIQUE <索引名> ON tablename (索引字段)修改:ALTER TABLE tablename ADD UNIQUE [索引名] (索引字段)創(chuàng)表指定索引:CREATE TABLE tablename([...],UNIQUE[索引名](索引字段))

(主鍵)->它是唯一索引,一般在創(chuàng)建表是建立,格式為:CREATA TABLE tablename ([...],PRIMARY KEY[索引字段])

8)、優(yōu)化查詢語(yǔ)句

a.最好在相同字段進(jìn)行比較操作,在建立好的索引字段上盡量減少函數(shù)操作例子1:

SELECT * FROM order WHERE YEAR(orderDate)<2008;(慢)SELECT * FROM order WHERE orderDate<'2008-01-01';(快)

例子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<'good';

7.PHP的意思

PHP是一個(gè)基于服務(wù)端來(lái)創(chuàng)建動(dòng)態(tài)網(wǎng)站的腳本語(yǔ)言,您可以用PHP和HTML生成網(wǎng)站主頁(yè)

8.MYSQL取得當(dāng)前時(shí)間的函數(shù)是?,格式化日期的函數(shù)是的什么?

now(),date()

9.實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法

function GBsubstr($string, $start, $length) { if(strlen($string)>$length){$str=null;$len=$start+$length;for($i=$start;$i<$len;$i++){ if(ord(substr($string,$i,1))>0xa0){$str.=substr($string,$i,2);$i++; }else{$str.=substr($string,$i,1); }}return $str.’…’; }else{return $string; }}

標(biāo)簽: PHP
相關(guān)文章: