第一篇:PHP基礎(chǔ)總結(jié)
1、在HTML嵌入PHP腳本有三種辦法:
<scriptlanguage=“php”>
//嵌入方式一
echo(“test”);
</script>
<?
//嵌入方式二
echo“<br>test2”;
?>
<?php
//嵌入方式三
echo“<br>test3”;
?>
還有一種嵌入方式,即使用和Asp相同的標(biāo)記<%%>,但要修改PHP.ini 相關(guān)配置,不推薦使用。
2、PHP注釋分單行和多行注釋,和java注釋方式相同。
<?
//這里是單行注釋
echo“test”;
/*
這里是多行注釋!可以寫很多行注釋內(nèi)容
*/
?>
注意不要有嵌套注釋,如/*aaaa/*asdfa*/asdfasdfas*/,這樣的注釋會(huì)出現(xiàn)問題。
3、PHP主要的數(shù)據(jù)類型有5種,integer,double,string,array,object。
4、函數(shù)內(nèi)調(diào)用函數(shù)外部變量,需要先用global進(jìn)行聲明,否則無法訪問,這是PHP與其他程序語言的一個(gè)區(qū)別。事例代碼:
<?
$a=1;
functiontest(){
echo$a;
}
test();//這里將不能輸出結(jié)果“1”。
functiontest2(){
global$a;
echo$a;
}
test2();//這樣可以輸出結(jié)果“1”。
?>
注意:PHP可以在函數(shù)內(nèi)部聲明靜態(tài)變量。用途同C語言中。
5、變量的變量,變量的函數(shù)
<?
//變量的變量
$a=“hello”;
$$a=“world”;
echo“$a$hello”;//將輸出“helloworld”
echo“$a${$a}”;//同樣將輸出“helloworld”
?>
<?
//變量的函數(shù)
functionfunc_1(){
print(“test”);
}
functionfun($callback){
$callback();
}
fun(“func_1”);//這樣將輸出“test”
?>
6、PHP同時(shí)支持標(biāo)量數(shù)組和關(guān)聯(lián)數(shù)組,可以使用list()和array()來創(chuàng)建數(shù)組,數(shù)組下標(biāo)從0開始。如:
<?
$a[0]=“abc”;
$a[1]=“def”;
$b[“foo”]=13;
$a[]=“hello”;//$a[2]=“hello”
$a[]=“world”;//$a[3]=“world”
$name[]=“jill”;//$name[0]=“jill”
$name[]=“jack”;//$name[1]=“jack”
?>
7、關(guān)聯(lián)參數(shù)傳遞(&的使用),兩種方法。例:
<?
//方法一:
functionfoo(&$bar){
$bar.=“andsomethingextra”;
}
$str=“ThisisaString,”;
foo($str);
echo$str;//output:ThisisaString,andsomethingextra
echo“<br>”;
//方法二:
functionfoo1($bar){
$bar.=“andsomethingextra”;
}
$str=“ThisisaString,”;
foo1($str);
echo$str;//output:ThisisaString,echo“<br>”;
foo1(&$str);
echo$str;//output:ThisisaString,andsomethingextra
?>
8、函數(shù)默認(rèn)值。PHP中函數(shù)支持設(shè)定默認(rèn)值,與C++風(fēng)格相同。
<?
functionmakecoffee($type=“coffee”){
echo“makingacupof$type.n”;
}
echomakecoffee();//“makingacupofcoffee”
echomakecoffee(“espresso”);//“makingacupofespresso”
/*
注意:當(dāng)使用參數(shù)默認(rèn)值時(shí)所有有默認(rèn)值的參數(shù)應(yīng)該在無默認(rèn)值的參數(shù)的后邊定義。否則,程序?qū)⒉粫?huì)按照所想的工作。
*/
functiontest($type=“test”,$ff){//錯(cuò)誤示例
return$type.$ff;
}
9、PHP的幾個(gè)特殊符號(hào)意義。
$變量
&變量的地址(加在變量前)
@不顯示錯(cuò)誤信息(加在變量前)
->類的方法或者屬性
=>數(shù)組的元素值
?:三元運(yùn)算子
10、include()語句與require()語句
如果要根據(jù)條件或循環(huán)包含文件,需要使用include()。
require()語句只是被簡(jiǎn)單的包含一次,任何的條件語句或循環(huán)等對(duì)其無效。
由于include()是一個(gè)特殊的語句結(jié)構(gòu),因此若語句在一個(gè)語句塊中,則必須把他包含在一個(gè)語句塊中。
<?
//下面為錯(cuò)誤語句
if($condition)
include($file);
else
include($other);
//下面為正確語句
if($condition){
include($file);
}else
{
include($other);
}
?>
第二篇:PHP基礎(chǔ)階段知識(shí)總結(jié)
php基礎(chǔ)階段內(nèi)容: php 基本概念,常規(guī)語法
什么是php 一種服務(wù)器端的 HTML 腳本/編程語言,是一種簡(jiǎn)單的、面向?qū)ο蟮摹⒔忉屝偷?、健壯的、安全的、性能非常之高的、?dú)立于架構(gòu)的、可移植的、動(dòng)態(tài)的腳本語言。是一種廣泛用于 Open Source(開放源代碼)的尤其適合 Web 開發(fā)并可以嵌入 HTML 的多用途腳本語言。它的語法接近C,Java 和 Perl,而且容易學(xué)習(xí)。該語言讓 Web 開發(fā)人員快速的書寫動(dòng)態(tài)生成的網(wǎng)頁。
php的注釋方式
1.多行注釋:/* */ 2.單行注釋://、#php現(xiàn)在的最新版本 5.5.36
5.6.22
7.0.7 wamp是什么? W:windows A:apache M:mysql P:php 一組常用來搭建動(dòng)態(tài)網(wǎng)絡(luò)或服務(wù)器的開源軟件
php的數(shù)據(jù)類型
八種: 四種標(biāo)量類型: String(字符串)Integer(整型)Float(浮點(diǎn)型,也作double)Boolean(布爾型)兩種復(fù)合類型: Array(數(shù)組)Object(對(duì)象)兩種特殊類型: Resource(資源)NULL(空)php中字符串的單引號(hào)和雙引號(hào)的區(qū)別 單引號(hào)比雙引號(hào)的效率高(某些特殊情況)單引號(hào):中的數(shù)據(jù)視為普遍的字符串 雙引號(hào):要對(duì)其數(shù)據(jù)進(jìn)行處理
php的隨機(jī)數(shù)函數(shù)?不帶參數(shù)和帶參數(shù)有什么區(qū)別?
Rand(min,max)/Mt_rand(min,max)Mt_rand的速度比rand快
不帶參數(shù)時(shí)默認(rèn)范圍(在0---32767之間)帶參數(shù)的話rand(最小值,最大值)怎么定義常量?
define(“常量名”,“常量值”);值只能是標(biāo)量,數(shù)據(jù)類型只能是boolean、integer、float或string;不需要加“$”
怎么輸出內(nèi)容到頁面顯示?
Echo、print echo、print_r、var_dump區(qū)別?
echo用于輸出數(shù)值變量或者字符串。但使用echo來輸出引用變量時(shí),如數(shù)組,僅輸出數(shù)組的名字
print_r 作用是輸出一個(gè)數(shù)組,實(shí)際上參數(shù)expression類型可為數(shù)值變量和引用變量。Var_dump 函數(shù)的輸出結(jié)果<變量類型,變量值,變量長(zhǎng)度>參數(shù)expression表示各種變量類型,作用是輸出一個(gè)變量的詳細(xì)信息。php基礎(chǔ)函數(shù)(數(shù)組、日期、字符串)
怎么定義一個(gè)數(shù)組? $Arr = array();怎么給數(shù)組新增加1個(gè)值?
Array_push Array_unshift $arr[] =;foreach語法結(jié)構(gòu)?
Foreach($arr as $key=>$value){ } foreach僅用于數(shù)組和對(duì)象
刪除數(shù)組中的指定元素 array_splice()
數(shù)組的排序 sort()和rsort()
按鍵值排序sort()從小到大,rsort()從大到小
array_unique()去除數(shù)組中的相同元素
in_array()檢測(cè)一個(gè)值是否在數(shù)組中(返回true和false)
array_search()返回的是鍵或值,返回的是鍵值所對(duì)應(yīng)的鍵名
array_pop()-刪除數(shù)組中的最后一個(gè)元素
array_push()數(shù)組尾部添加一個(gè)或多個(gè)元素(入棧),返回新長(zhǎng)度。
array_search()-按元素值返回鍵名
怎么獲取當(dāng)前的日期時(shí)間?
date_default_timezone_get()gettimeofday()
怎么格式化顯示當(dāng)前的日期時(shí)間?
Echo date(‘Y-m-d h:i:s’);系統(tǒng)默認(rèn)的是哪個(gè)地區(qū)的時(shí)間? 格林威治時(shí)間(GMT)
怎么修改系統(tǒng)的默認(rèn)時(shí)區(qū)?
date_default_timezone_set(“ PRC”);中國(guó)時(shí)區(qū)
修改配置文件php.ini 找到data.timezone =;改為data.timezone = “Asia/shanghai”;獲取字符串的長(zhǎng)度? $length = strlen($str);將字符串全部轉(zhuǎn)換為小寫或大寫? 字符串全部轉(zhuǎn)換為小寫 :strtolower 字符串全部轉(zhuǎn)換為大寫 :strtoupper 查找字符在字符串中第一次或最后一次出現(xiàn)的位置? Stripos 第一次出現(xiàn)
Strrpos最后一次出現(xiàn)【不區(qū)分大小寫】 Trrpos
【區(qū)分大小寫】 web開發(fā)(http協(xié)議)
http的中文名稱?現(xiàn)在的最新版本是多少?訪問時(shí)的默認(rèn)端口號(hào)? 超文本傳輸協(xié)議 2.4 3306 http協(xié)議的特點(diǎn)?
1.支持客戶/服務(wù)器模式 2.簡(jiǎn)單快速 3.靈活 4.無連接 5.無狀態(tài)
http的信息處理流程?
應(yīng)用層、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層 請(qǐng)求信息分為幾個(gè)部分? 四個(gè)部分
通用頭域、請(qǐng)求消息、響應(yīng)消息和主體消息
請(qǐng)求方式共計(jì)有幾種?我們常用的是哪2中請(qǐng)求方式? 八種 1.Get 2.Head 3.Put
4.5.6.7.8.Delete Post Options Trace Connect 最常用的兩種:post/get 請(qǐng)求行中包含哪些信息內(nèi)容?
請(qǐng)求方法、URI、HTTP版本,最后以回車換行結(jié)尾,各個(gè)元素之間用空格字符隔開。請(qǐng)求頭中會(huì)包含哪些信息?
通用頭域包含請(qǐng)求和響應(yīng)消息都支持的頭域,通用頭域包含緩存頭部Cache-Control、Pragma及信息性頭部Connection、Date、Transfer-Encoding、Update、Via。
響應(yīng)信息分為幾個(gè)部分? 狀態(tài)行,響應(yīng)頭,空行,消息體
一個(gè)狀態(tài)行、若個(gè)消息頭、已經(jīng)響應(yīng)正文、其中的一些消息頭和正文都是可選的,消息頭和正文內(nèi)容之間要用空格隔開
狀態(tài)行中包含哪些信息?
HTTP版本號(hào)
狀態(tài)碼分幾類?分別代表啥意思?列舉常見的狀態(tài)碼及其含義?
100-199 用于指定客戶端應(yīng)相應(yīng)的某些動(dòng)作。
200-299 用于表示請(qǐng)求成功。
300-399 用于已經(jīng)移動(dòng)的文件并且常被包含在定位頭信息中指定新的地址信息。
400-499 用于指出客戶端的錯(cuò)誤。
500-599 用于支持服務(wù)器錯(cuò)誤。常見:
200:服務(wù)器成功返回網(wǎng)頁 302:臨時(shí)移動(dòng)
404:請(qǐng)求的網(wǎng)頁不存在
502:錯(cuò)誤網(wǎng)關(guān)
503:服務(wù)器超時(shí)
Continue 初始的請(qǐng)求已經(jīng)接受,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余部分 101 Switching Protocols 服務(wù)器將遵從客戶的請(qǐng)求轉(zhuǎn)換到另外一種協(xié)議 200 OK 一切正常,對(duì)GET和POST請(qǐng)求的應(yīng)答文檔跟在后面 201 Created 服務(wù)器已經(jīng)創(chuàng)建了文檔,Location頭給出了它的URL。202 Accepted 已經(jīng)接受請(qǐng)求,但處理尚未完成。203 Non-Authoritative Information 文檔已經(jīng)正常地返回,但一些應(yīng)答頭可能不正確,因?yàn)槭褂玫氖俏臋n的拷貝 204 No Content 沒有新文檔,瀏覽器應(yīng)該繼續(xù)顯示原來的文檔。如果用戶定期地刷新頁面,而Servlet可以確定用戶文檔足夠新,這個(gè)狀態(tài)代碼是很有用的 205 Reset Content 沒有新的內(nèi)容,但瀏覽器應(yīng)該重置它所顯示的內(nèi)容。用來強(qiáng)制瀏覽器清除表單輸入內(nèi)容
206 Partial Content 客戶發(fā)送了一個(gè)帶有Range頭的GET請(qǐng)求,服務(wù)器完成了它 300 Multiple Choices 客戶請(qǐng)求的文檔可以在多個(gè)位置找到,這些位置已經(jīng)在返回的文檔內(nèi)列出。如果服務(wù)器要提出優(yōu)先選擇,則應(yīng)該在Location應(yīng)答頭指明。301 Moved Permanently 客戶請(qǐng)求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應(yīng)該自動(dòng)地訪問新的URL。302 Found 類似于301,但新的URL應(yīng)該被視為臨時(shí)性的替代,而不是永久性的。303 See Other 類似于301/302,不同之處在于,如果原來的請(qǐng)求是POST,Location頭指定的重定向目標(biāo)文檔應(yīng)該通過GET提取 304 Not Modified 客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。
305 Use Proxy 客戶請(qǐng)求的文檔應(yīng)該通過Location頭所指明的代理服務(wù)器提取 307 Temporary Redirect 和302(Found)相同。許多瀏覽器會(huì)錯(cuò)誤地響應(yīng)302應(yīng)答進(jìn)行重定向,即使原來的請(qǐng)求是 POST,即使它實(shí)際上只能在POST請(qǐng)求的應(yīng)答是303時(shí)才能重定向。由于這個(gè)原因,HTTP 1.1新增了307,以便更加清除地區(qū)分幾個(gè)狀態(tài)代碼: 當(dāng)出現(xiàn)303應(yīng)答時(shí),瀏覽器可以跟隨重定向的GET和POST請(qǐng)求;如果是307應(yīng)答,則瀏覽器只能跟隨對(duì)GET請(qǐng)求的重定向。400 Bad Request 請(qǐng)求出現(xiàn)語法錯(cuò)誤。401 Unauthorized 客戶試圖未經(jīng)授權(quán)訪問受密碼保護(hù)的頁面。應(yīng)答中會(huì)包含一個(gè)WWW-Authenticate頭,瀏覽器據(jù)此顯示用戶名字/密碼對(duì)話框,然后在填寫合適的Authorization頭后再次發(fā)出請(qǐng)求。
403 Forbidden 資源不可用。404 Not Found 無法找到指定位置的資源 405 Method Not Allowed 請(qǐng)求方法(GET、POST、HEAD、Delete、PUT、TRACE等)對(duì)指定的資源不適用。406 Not Acceptable 指定的資源已經(jīng)找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容 407 Proxy Authentication Required 類似于401,表示客戶必須先經(jīng)過代理服務(wù)器的授權(quán)。408 Request Timeout 在服務(wù)器許可的等待時(shí)間內(nèi),客戶一直沒有發(fā)出任何請(qǐng)求??蛻艨梢栽谝院笾貜?fù)同一請(qǐng)求。409 Conflict 通常和PUT請(qǐng)求有關(guān)。由于請(qǐng)求和資源的當(dāng)前狀態(tài)相沖突,因此請(qǐng)求不能成功。410 Gone 所請(qǐng)求的文檔已經(jīng)不再可用,而且服務(wù)器不知道應(yīng)該重定向到哪一個(gè)地址。它和404的不同在于,返回407表示文檔永久地離開了指定的位置,而404表示由于未知的原因文檔不可用。411 Length Required 服務(wù)器不能處理請(qǐng)求,除非客戶發(fā)送一個(gè)Content-Length頭。412 Precondition Failed 請(qǐng)求頭中指定的一些前提條件失敗 413 Request Entity Too Large 目標(biāo)文檔的大小超過服務(wù)器當(dāng)前愿意處理的大小。如果服務(wù)器認(rèn)為自己能夠稍后再處理該請(qǐng)求,則應(yīng)該提供一個(gè)Retry-After頭 414 Request URI Too Long URI太長(zhǎng)
416 Requested Range Not Satisfiable 服務(wù)器不能滿足客戶在請(qǐng)求中指定的Range頭 500 Internal Server Error 服務(wù)器遇到了意料不到的情況,不能完成客戶的請(qǐng)求服務(wù)器不支持實(shí)現(xiàn)請(qǐng)求所需要的功能。例如,客戶發(fā)出了一個(gè)服務(wù)器不支持的PUT求502 Bad Gateway 服務(wù)器作為網(wǎng)關(guān)或者代理時(shí),為了完成請(qǐng)求訪問下一個(gè)服務(wù)器,但該服務(wù)器返回了非法的應(yīng)答
503 Service Unavailable 服務(wù)器由于維護(hù)或者負(fù)載過重未能應(yīng)答。例如,Servlet可能在數(shù)據(jù)庫連接池已滿的情況下返回503。服務(wù)器返回503時(shí)可以提供一個(gè)Retry-After頭 504 Gateway Timeout 由作為代理或網(wǎng)關(guān)的服務(wù)器使用,表示不能及時(shí)地從遠(yuǎn)程服務(wù)器獲得應(yīng)答 505 HTTP Version Not Supported 服務(wù)器不支持請(qǐng)求中所指明的HTTP版本
EGPCS指代的是什么?
指的是可以從服務(wù)器配置和請(qǐng)求的信息中獲取的信息,它包括了environment、GET、POST、cookie、server
怎么獲取訪問用戶的IP地址? getenv(“HTTP_ X_FORWARDED_FOR”);
請(qǐng)求中的Get和Post區(qū)別?
get是從服務(wù)器上獲取信息,post是向服務(wù)器傳送數(shù)據(jù),現(xiàn)在都是提交
如果要上傳文件需要進(jìn)行哪些設(shè)置? enctype=“multipart/form-data” 上傳文件的信息怎么提?。?/p>
FILES[] 怎么獲取當(dāng)前文件的路徑和名稱? echo $_FILES['img']['tmp_name'] echo$_FILES['img']['name']
怎么獲取當(dāng)前文件的文件夾路徑? Echo __FILE__
怎么解決http無狀態(tài)的問題?
創(chuàng)建
表單隱藏字; Cookie; Session; URL重寫;
什么是cookie?
Cookie基本上就是一個(gè)包含多個(gè)字段的字符串。一臺(tái)服務(wù)器可以在響應(yīng)頭部發(fā)送一個(gè)或多個(gè)cookie到瀏覽器。一些cookie的字段指明哪些瀏覽器頁面可以在請(qǐng)求中發(fā)送
什么是session?
Session 是存儲(chǔ)在服務(wù)器端的會(huì)話,相對(duì)安全
cookie和session的區(qū)別?
cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上;
Cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙(考慮到安全應(yīng)當(dāng)使用session);
Session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多時(shí),會(huì)比較占用你服務(wù)器的性能(考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用Cookie);
單個(gè)cookie保存的數(shù)據(jù)不能超過4k,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie; 綜上所述
將登錄信息等重要信息保存到session中,其他信息需要保留,可放在cookie中。
怎么創(chuàng)建設(shè)置cookie信息?
使用cookie前必須設(shè)置cookie.int setcookie(string name, string value, int expire,string path, string domain, int secure)怎么使用session?
// 啟動(dòng)Session
session_start();
// 聲明一個(gè)名為 admin 的變量,并賦空值。
$_SESSION[“admin”] = null;
$_SESSION[“count“] = $_SESSION[“count”]+1;
echo “這里已經(jīng)有 $_SESSION[“count“] 人瀏覽過了”;?> session的常見函數(shù)有哪些?各有什么用處?
ession_start();
//初始化session.需在文件頭部
$_SESSION[name]=value;//配置Seeeion echo $_SESSION[name];//使用session isset($_SESSION[name]);// 判斷
unset($_SESSION[name]);//刪除
session_destroy(); //刪除所有session,但是寫入cookie的信息無法自動(dòng)去掉
如果客戶端禁止了cookie怎么處理? ajax ajax的中文名稱? 異步JavaScript和XML
ajax簡(jiǎn)述?
也就是說AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù),在不重新加載整個(gè)頁面的情況下。
AJAX 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)。
通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新。
傳統(tǒng)的網(wǎng)頁(不使用 AJAX)如果需要更新內(nèi)容,必需重載整個(gè)網(wǎng)頁面。ajax中包含哪些技術(shù)?
7項(xiàng)技術(shù),其中Javascript、XMLHttpRequest、Dom、XML是最為重要
ajax對(duì)象有哪些常用函數(shù),及其功能?
Abort():停止當(dāng)前請(qǐng)求;
getAllResponseHeaders():作為字符串返回完整的headers;
getResponseheader(“hederLabel”):作為字符串返回單個(gè)的header標(biāo)簽;Open(“method”,“URL”[,asyncFlag[,”userName”[,”password”]]]):設(shè)置未決的請(qǐng)求的目標(biāo)URL方法和其他參數(shù);Send(content):發(fā)送請(qǐng)求;
setRequestHeader(“l(fā)abel”,”value”):設(shè)置header并和請(qǐng)求一起發(fā)送;
ajax對(duì)象的常用屬性有哪些?
Onreadystatechange:狀態(tài)改變的事件觸發(fā)器 readyState:對(duì)象狀態(tài)(integer):0=未初始化,1=讀取中,2=已讀取,3=交互中,4=完成
responseText:服務(wù)器進(jìn)程返回?cái)?shù)據(jù)的文本
responseXML:服務(wù)器進(jìn)程返回?cái)?shù)據(jù)的兼容DOM的XML文檔對(duì)象 Status:服務(wù)器返回的狀態(tài)碼,如404=“文件未找到”、200=“成功” statusText:服務(wù)器返回的狀態(tài)文本信息
jquery的ajax函數(shù)格式及其常用參數(shù)、寫法?
$.ajax({
type: ”POST“, //請(qǐng)求方式
url: ”jqajax1.php“,//請(qǐng)求的地址
data: ”username=“+$(”input[type='text']“).val(), //請(qǐng)求的參數(shù)字符串
dataType: ”json“, //設(shè)置返回的數(shù)據(jù)類型,默認(rèn)值為”text“
success: function(msg){//接收成功返回的數(shù)據(jù)結(jié)果
$(”#div1“).html(”接收的返回值: “ + msg);
},error: function(msg){
$(”#div1“).html(”有錯(cuò)誤了: “ + msg);
}
});php+mysql(mysql函數(shù))
要連接mysql之前的要設(shè)置什么?
在您能夠訪問并處理數(shù)據(jù)庫中的數(shù)據(jù)之前,您必須創(chuàng)建到達(dá)數(shù)據(jù)庫的連接。
php操作mysql數(shù)據(jù)庫的步驟?
mysql_connect()
建立數(shù)據(jù)庫連接 mysql_select_db()
選擇操作的數(shù)據(jù)庫 mysql_query()
執(zhí)行SQL語句 mysql_fetch_array()
返回一行記錄(數(shù)組)mysql_num_rows()
返回結(jié)果集中行的數(shù)目 mysql_close()
關(guān)閉數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫連接的函數(shù)?參數(shù)有幾個(gè)?每個(gè)參數(shù)代表什么含義?
mysql_connect()建立數(shù)據(jù)庫連接 參數(shù)共計(jì)5個(gè):
第一個(gè)參數(shù):服務(wù)器名稱或者地址,同時(shí)可以加上端口號(hào)(如果是默認(rèn)的3306,則可以省略);
第二個(gè)參數(shù):登錄的用戶名; 第三個(gè)參數(shù):登錄密碼;
第四個(gè)參數(shù):是否使用可能重名的相同連接對(duì)象(如果該對(duì)象已經(jīng)創(chuàng)建),默認(rèn)為false;
第五個(gè)參數(shù):常量組合,設(shè)置連接的模式,默認(rèn)值為0;
(連接成功,返回結(jié)果為資源類型;如果失敗,報(bào)錯(cuò)并且返回false)
怎么選擇要操作的數(shù)據(jù)庫名稱?
mysql_select_db(“數(shù)據(jù)庫名稱”)選擇操作的數(shù)據(jù)庫
執(zhí)行sql語句的函數(shù)?該函數(shù)返回值是什么類型?
mysql_query();僅對(duì)select,show,describe或explain等語句如果成功就返回資源類型; 對(duì)于update,delete,drop,insert等語句,成功返回true,失敗返回false。
怎么獲取查詢結(jié)果集的數(shù)量?
Mysql_result(), mysql_fetch_row(),mysql_fetch_array()
怎么提取結(jié)果集中的數(shù)據(jù)?提取出來的數(shù)據(jù)是什么樣的格式?
mysql_fetch_array();
MYSQL_ASSOC():返回的數(shù)組將以該記錄的字段名稱作為下標(biāo) MYSQL_NUM():返回的數(shù)組以從0開始的數(shù)字為下標(biāo)
MYSQL_BOTH:返回的數(shù)組既可以用字段名為下標(biāo),也可以用數(shù)字為下標(biāo)
怎么關(guān)閉數(shù)據(jù)庫連接? mysql_close();其他
empty()empty()函數(shù)檢查一個(gè)變量是否為空或零值,如果變量值是非空或非零值,則empty()返回FALSE,否則返回TRUE
isset()isset()函數(shù)來檢查變量是否存在gettype()gettype()獲取變量的類型 settype()一種強(qiáng)制轉(zhuǎn)換類型的函數(shù)方法
語法格式:bool settype(mixed $var, string $type)例如:$var=”123hello“;//$var為字符串
settype($var, ”int");//$var現(xiàn)在為整型(值為123)
錯(cuò)誤控制運(yùn)算符 @ 將其放置在PHP表達(dá)式之前,該表達(dá)式可能產(chǎn)生的任何錯(cuò)誤信息都將被忽略
執(zhí)行運(yùn)算符 ` PHP支持一個(gè)執(zhí)行運(yùn)算符,即反引號(hào)(``)
在PHP腳本中,將外部程序的命令行放入反引號(hào)中,并使用echo()或print()函數(shù)將其顯示,PHP將會(huì)在到達(dá)該行代碼時(shí)啟動(dòng)這個(gè)外部程序,并將其輸出信息返回,其作用效果與shell_exec()函數(shù)相同
反引號(hào)運(yùn)算符在激活了安全模式或者關(guān)閉了 shell_exec()時(shí)是無效的。與其它某些語言不同,反引號(hào)不能在雙引號(hào)字符串中使用。
字符串拼接.使用“.”
定界符 <<<+名稱
“<<<”之后提供一個(gè)標(biāo)志符,然后是字符串,最后用同樣的標(biāo)志符結(jié)束字符串。結(jié)束標(biāo)志符必須從行的第一列開始,標(biāo)志符必須遵循PHP中標(biāo)記的命名規(guī)則:只能包含字母、數(shù)字、下劃線,而且必須以下劃線或非數(shù)字字符開始
第三篇:PHP基礎(chǔ)培訓(xùn)班教學(xué)大綱
PHP基礎(chǔ)培訓(xùn)班教學(xué)大綱
無它,唯手熟爾。只要功夫深鐵杵磨成針。繩鋸木斷。不要拘泥于對(duì)與錯(cuò)。學(xué)歷與技術(shù)。
PHP簡(jiǎn)介&市場(chǎng)、網(wǎng)站原理 asp/php/jsp/java 百度 網(wǎng)易 新浪 搜狐 騰訊 Facebook 開心網(wǎng) 淘寶 論壇
HTML 語法:<標(biāo)簽 屬性=”屬性值”>作用文字標(biāo)簽> 介紹font、table表格、a、hr、div、img、ul&li。介紹form表單。
CSS樣式表。(color、background、font-size、margin、text-align)
JavaScript。
PHP 環(huán)境和手冊(cè)準(zhǔn)備。AppServ、EditPlus?;菊Z法(起始符)運(yùn)行流程(從上往下)數(shù)據(jù)類型(布爾型、整型、浮點(diǎn)型、字符串、數(shù)組)變量 常量 賦值
運(yùn)算符(字符串運(yùn)算符、算術(shù)運(yùn)算符、字符串運(yùn)算符)結(jié)構(gòu)
1、流程控制(if、while、for)
2、文件包含。
函數(shù)(str_replace、strtolower、strlen、ceil、floor、date、md5)數(shù)組(explode、print_r、var_dump)
文件操作&存儲(chǔ)(file_get_contents、unlink)計(jì)數(shù)器 GD圖像函數(shù)庫 自定義函數(shù) 遞歸 SESSION 購(gòu)物車 COOKIE 文字留言本
正則表達(dá)式(查找、替換、分割)
模板引擎(Smarty、SmartTemplate、PHPlib)Debug方式。
MySQL 環(huán)境和手冊(cè)準(zhǔn)備。PhpMyAdmin。
服務(wù)器、數(shù)據(jù)庫、數(shù)據(jù)表、字段之間的關(guān)系。
數(shù)據(jù)庫編碼。數(shù)據(jù)表類型。字段類型(varchar、int、text、float)。PhpMyAdmin的使用方法。
數(shù)據(jù)庫基本操作(select、insert、update、delete)。
綜合應(yīng)用
第四篇:學(xué)php需要哪些基礎(chǔ)?程序員需要哪些素質(zhì)呢?
004km.cn
學(xué)php需要哪些基礎(chǔ)?程序員需要哪些素質(zhì)呢?
中國(guó)每年有大量的計(jì)算機(jī)類畢業(yè)生進(jìn)入企業(yè),企業(yè)會(huì)把那些程序員列入優(yōu)秀人才加以重視呢?斬獲高薪的程序員需要哪些素質(zhì)呢?
團(tuán)隊(duì)精神和協(xié)作能力
團(tuán)隊(duì)精神是程序員應(yīng)該具備的基本素質(zhì),任何個(gè)人的力量都是有限的。即便如Linus這樣的天才,也需要通過組成強(qiáng)大的團(tuán)隊(duì)來創(chuàng)造奇跡。那些遍布全球的為L(zhǎng)inux寫核心的高手們,沒有協(xié)作精神是不可想象的。獨(dú)行俠可以作一些賺錢的小軟件發(fā)點(diǎn)小財(cái),但是一旦進(jìn)入一些大系統(tǒng)的研發(fā)團(tuán)隊(duì),進(jìn)入商業(yè)化和產(chǎn)品化的開發(fā)任務(wù),缺乏團(tuán)隊(duì)精神的人就完全不合格了。
文檔習(xí)慣
說高水平程序員從來不寫文檔的肯定是乳臭未干的毛孩子,條理清晰的文檔是正規(guī)研發(fā)流程中 非常重要的環(huán)節(jié)。作為代碼程序員,3成的工作時(shí)間寫技術(shù)文檔是很正常的,而作為高級(jí)程序員和系統(tǒng)分析員,這個(gè)比例還要高很多。缺乏文檔,一個(gè)軟件系統(tǒng)就缺乏生命力,在未來的查錯(cuò),升級(jí)以及模塊的復(fù)用時(shí)就都會(huì)遇 到極大的麻煩。
四川地處中國(guó)大西南,肥沃的土地,豐富的自然資源,悠久的歷史和絢爛多彩的少數(shù)民族文化,構(gòu)成了多樣性的自然和文化旅游資源。每到中考季,很多初中生總是為自己的未來前途擔(dān)心,尤其是一些學(xué)習(xí)成績(jī)不好的初中生,他們不知道中考沒考上怎么辦。同時(shí)許多家長(zhǎng)也擔(dān)心,自己的孩子年齡還小,進(jìn)入社會(huì)顯然不合適。這個(gè)時(shí)候職業(yè)培訓(xùn)學(xué)校更加適合,放眼眾多學(xué)院,四川國(guó)信安職業(yè)培訓(xùn)學(xué)校無疑是非常合適的。
尋尋覓覓,走馬觀花,你在it培訓(xùn)這條路上看了多久?走了多遠(yuǎn)?你是否還在為它而困擾?你是否發(fā)現(xiàn)找到一個(gè)心儀的實(shí)在太麻煩!其實(shí)選擇也可以很簡(jiǎn)單!讓小編帶你走進(jìn)it培訓(xùn),來了解些實(shí)用干貨。接下來就讓小編帶你來看看it培訓(xùn)相關(guān)的情況吧~請(qǐng)看下文~
004km.cn
學(xué)php需要哪些基礎(chǔ)?這是很多人在學(xué)習(xí)php之前想到的一點(diǎn),因?yàn)榇蠹叶加X得這門課程很陌生,也擔(dān)心自己會(huì)學(xué)習(xí)的非常吃力。但同時(shí),php領(lǐng)域的高工資又誘惑著大家,即使是小白都想快速成為高手。
學(xué)php需要哪些基礎(chǔ)?從培訓(xùn)機(jī)構(gòu)的角度來講,大家不需要有任何基礎(chǔ),因?yàn)椴还苣闶切袠I(yè)精英還是初始學(xué)習(xí)者,學(xué)校都會(huì)給大家提供適合自己的課程,有的以基礎(chǔ)班為準(zhǔn),有的以提升班為準(zhǔn),課程方向不同,學(xué)習(xí)的深度就有所差別。知道了培訓(xùn)機(jī)構(gòu)的課程設(shè)置之后,我們就應(yīng)該充分考慮一下自己的現(xiàn)狀了。建議小白人員從最基礎(chǔ)的理論部分開始學(xué)習(xí),先不要忙著去實(shí)踐,先掌握知識(shí)的來龍去脈,等到有了自己的思考和理解之后再去進(jìn)修即可。國(guó)信安教育基地給出了循序漸進(jìn)的學(xué)習(xí)方法,只為給大家提供優(yōu)良的學(xué)習(xí)思路,從而讓每個(gè)人成為行業(yè)精英。
學(xué)php需要哪些基礎(chǔ)?因此大家根本不用擔(dān)心基礎(chǔ)問題,國(guó)信安教育基地會(huì)給出適合你的學(xué)習(xí)方案和計(jì)劃,大家只需要按部就班的跟著老師的思路執(zhí)行即可。不管你是不是行業(yè)小白,相信在國(guó)信安這種培訓(xùn)機(jī)構(gòu)的帶領(lǐng)下,我們會(huì)快速認(rèn)識(shí)到php相關(guān)的概念和知識(shí),從而讓你成為唾手可得的人才,進(jìn)而在求職市場(chǎng)中獲得更多公司的青睞。至于學(xué)習(xí)時(shí)間,需要根據(jù)大家的時(shí)間安排進(jìn)行設(shè)定,如果每天學(xué)習(xí)幾個(gè)小時(shí),不出幾個(gè)月,你就成為php領(lǐng)域的專家了。
國(guó)信安IT培訓(xùn)基地指定的官方IT人才培訓(xùn)機(jī)構(gòu)。專注java培訓(xùn)、php培訓(xùn)、UI設(shè)計(jì)培訓(xùn)、IOS培訓(xùn)、安卓培訓(xùn)、嵌入式培訓(xùn)、.NET培訓(xùn)、web前端培訓(xùn)等培訓(xùn)課程。你們準(zhǔn)備好怎么學(xué)習(xí)IT技術(shù)了嗎?來參加國(guó)信安IT培訓(xùn)課程,你的選擇不會(huì)有錯(cuò)!
第五篇:php課程總結(jié)
一、時(shí)間和地點(diǎn):
每周四上午在F311上課。
二、課程內(nèi)容:
通過這段時(shí)間的學(xué)習(xí),我對(duì)PHP中的MySQL數(shù)據(jù)庫有了一定的理解。由于以前沒有基礎(chǔ),在老師講課的過程開始有點(diǎn)費(fèi)盡,盡量記了一些。首先學(xué)習(xí)了一些定義:MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。
數(shù)據(jù)(Data)是對(duì)客觀事物的符號(hào)表示,如圖形符號(hào)、數(shù)字、字母等,數(shù)據(jù)是數(shù)據(jù)庫中存儲(chǔ)的基本對(duì)象。在日常生活中,人們直接用語言來描述事物;在計(jì)算機(jī)中,為了存儲(chǔ)和處理這些事物,就要將事物的特征抽象出來組成一個(gè)記錄來描述。之后,進(jìn)行數(shù)據(jù)的編寫,知道了數(shù)據(jù)庫的發(fā)展史:人工管理階段(人力手工整理存儲(chǔ)數(shù)據(jù))、文件系統(tǒng)階段(使用磁盤文件來存儲(chǔ)數(shù)據(jù))、數(shù)據(jù)庫系統(tǒng)階段、關(guān)系型數(shù)據(jù)庫、高級(jí)數(shù)據(jù)庫階段、“關(guān)系-對(duì)象”型數(shù)據(jù)庫。再然后學(xué)習(xí)了數(shù)據(jù)庫的類型:
(1)純文本數(shù)據(jù)庫: 純文本數(shù)據(jù)庫是只用空格符、制表符和換行符來分割信息的文本文件。適用于小型應(yīng)用,對(duì)于大中型應(yīng)用來說它存在諸多限制:
? 只能順序訪問,不能進(jìn)行隨機(jī)訪問。? 查找數(shù)據(jù)和數(shù)據(jù)關(guān)系或多用戶同時(shí)訪問進(jìn)行寫操作時(shí)非常困難。
(2)關(guān)系數(shù)據(jù)庫:
由于純文本數(shù)據(jù)庫存在諸多局限,所以人們開始研究數(shù)據(jù)模型,設(shè)計(jì)各種類型的使用方便的數(shù)據(jù)庫。在數(shù)據(jù)庫的發(fā)展史上,最具影響的數(shù)據(jù)庫模型有:層次模型、網(wǎng)狀模型和關(guān)系模型。其中,關(guān)系模型是目前應(yīng)用最廣泛和最有發(fā)展前途的一種數(shù)據(jù)模型,其數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,當(dāng)前主流的數(shù)據(jù)庫系統(tǒng)幾乎都采用關(guān)系模型。數(shù)據(jù)庫管理系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)(Database Management System)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于建立、使用和維護(hù)數(shù)據(jù)庫,簡(jiǎn)稱DBMS。它對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。
MySQl特征:性能快捷、優(yōu)化SQL語言、容易使用、多用戶支持、可移植性和開放源代碼、遵循國(guó)際標(biāo)準(zhǔn)和國(guó)際化支持、為多種編程語言提供API。
? mysql命令:mysql命令
mysql-h host_name-u user_name –ppassword ? h:當(dāng)連接MySQL服務(wù)器不在同臺(tái)主機(jī)時(shí),填寫主機(jī)名或IP地址 ? u:登錄MySQL的用戶名 ? p:登錄MySQL的密碼
? 注意:密碼如果寫在命令行的時(shí)候一定不能有空格。如果使用的系統(tǒng)為linux并且登陸用戶名字與MySQL的用戶名相同即可不用輸入用戶名密碼,linux默認(rèn)是以root登陸,windows默認(rèn)用戶是ODBC mysql程序常用命令:選定默認(rèn)數(shù)據(jù)庫:use dbname;顯示所有數(shù)據(jù)庫:show databases;顯示默認(rèn)數(shù)據(jù)庫中所有表:show tables;放棄正在輸入的命令:c;顯示命令清單:h;退出mysql程序:q;查看MySQL服務(wù)器狀態(tài)信息:s 接著我們講了數(shù)據(jù)庫基礎(chǔ)知識(shí),在此課中我們了解了數(shù)據(jù)庫: 數(shù)據(jù)庫由一批數(shù)據(jù)構(gòu)成的有序集合,這些數(shù)據(jù)被分門別類地存放在一些結(jié)構(gòu)化的數(shù)
據(jù)表(table)里,而數(shù)據(jù)表之間又往往存在交叉引用的關(guān)系,這種關(guān)系使數(shù)據(jù)庫又被稱為關(guān)系型數(shù)據(jù)庫 檔案柜=數(shù)據(jù)庫 抽屜=表 文件=記錄
一、數(shù)據(jù)庫的組成以及功能
1、SQL語法組成:DML(Data Manipulation Language數(shù)據(jù)操作語言)
——查詢、插入、刪除和修改數(shù)據(jù)庫中的數(shù)據(jù); ——SELECT、INSERT、UPDATE、DELETE等;
DCL(Data Control Language數(shù)據(jù)控制語言)
——用來控制存取許可、存取權(quán)限等; ——GRANT、REVOKE 等;
DDL(Data Definition Language數(shù)據(jù)定義語言)——用來建立數(shù)據(jù)庫、數(shù)據(jù)庫對(duì)象和定義其列
——CREATE TABLE、DROP TABLE、ALTER TABLE 等 功能函數(shù)
——日期函數(shù)、數(shù)學(xué)函數(shù)、字符函數(shù)、系統(tǒng)函數(shù)等
2、MysQl數(shù)據(jù)庫增刪改查:
數(shù)據(jù)庫的操作:增、刪、改、查
增 create database name、刪 drop database name、查 show databases 改 沒有修改數(shù)據(jù)庫的語句、可以修改數(shù)據(jù)庫的名字
Myisan 直接進(jìn)入mysql data文件夾進(jìn)行修改、Innodb 不可以改名,只能重建 幾個(gè)重要的數(shù)據(jù)庫:
Informatio_schema 存儲(chǔ)數(shù)據(jù)庫的各種信息用戶信息,列表信息,字符集信息等等?.Mysql用戶權(quán)限信息
Test 僅供用戶使用的測(cè)試數(shù)據(jù)庫,可以隨意使用 Cluster 服務(wù)器數(shù)據(jù)集,不可以刪除
Phpmyadmin mysql圖形管理軟件的一種web
3、數(shù)據(jù)表的操作
Use 數(shù)據(jù)庫名; 增 create table 表名(字段名 字段類型[約束條件],字段名 字段類型[約束條件]。。)
刪 drop table 表名 改
查 show tables
4、數(shù)據(jù)類型種類:
? 數(shù)值型
分為整型和浮點(diǎn)型
? 整型:可以由十進(jìn)制和十六進(jìn)制表示
整數(shù)由數(shù)字序列組成,如:1,100。
由十六進(jìn)制表示方法:0x且后面加1—9和A—F 的任意數(shù)字或字母,并且0x中的X不能大寫。
? 浮點(diǎn)型:
浮點(diǎn)數(shù)由一個(gè)數(shù)字加一個(gè)小數(shù)點(diǎn)再加上一個(gè)數(shù)字組成。兩個(gè)數(shù)字序列不能同時(shí)為空。
數(shù)值列的完整性約束
(1)AUTO_INCREMENT 自動(dòng)標(biāo)識(shí)列,在需要產(chǎn)生唯一標(biāo)志符號(hào)或者順序值時(shí)候,可用此屬性。值一般從1開始,每行增加1,在插入NULL到一個(gè)AUTO_INCREMENT列時(shí),MySQL會(huì)插入一個(gè)比該列中當(dāng)前最大值大1 的值,一個(gè)表中最多能有一個(gè)有此屬性的列。對(duì)于想使用此屬性的列應(yīng)該定義為NOT NULL,并定義為PRIMARY KEY 或者定義為UNIQUE鍵。
舉例:
create table t(id int auto_increment not null primary key);(2)UNSIGNED 無符號(hào),此屬性禁用負(fù)值,將數(shù)值的取值范圍從零開始。舉例:
create table t(num tinyint , num2 tinyint unsigned);(3)NULL和NOT NULL 默認(rèn)為NULL,即插入值時(shí)沒有在此字段插入值時(shí)自動(dòng)填NULL,如果指定了NOT NULL,則必須在插入值時(shí)在此字段添入值,不允許插入NULL值。(4)DEFAULT 可以通過此屬性來指定一個(gè)缺省值,即如果沒有在此列添加值,那么默認(rèn)添加DEFAULT后指定值。(5)ZEROFILL 前導(dǎo)零填充數(shù)值類型值以達(dá)到列的顯示寬度。
舉例:
create table test2(num1 int default 1,num2 int zerofill);CHAR和VARCHAR類型:
CHAR類型和VARCHAR類型長(zhǎng)度范圍都是0~255之間的大小。他們之間的差別在于MySQL處理存儲(chǔ)的方式:
CHAR把這個(gè)大小視為值的準(zhǔn)確大?。ㄓ每崭裉钛a(bǔ)比較短的值)。
VARCHAR類型把它視為最大值并且只使用了存儲(chǔ)字符串實(shí)際上需要的字節(jié)數(shù)(增加了一個(gè)額外的字節(jié)記錄長(zhǎng)度)。因而,較短的值當(dāng)被插入一個(gè)語句為VARCHAR類型的字段時(shí),將不會(huì)用空格填補(bǔ)(然而,較長(zhǎng)的值仍然被截短)。
5、創(chuàng)建數(shù)據(jù)庫:
建立數(shù)據(jù)庫操作:
語法:create database 數(shù)據(jù)庫名
敘述:創(chuàng)建一個(gè)具有指定名稱的數(shù)據(jù)庫。如果要?jiǎng)?chuàng)建的數(shù)據(jù)庫已經(jīng)存在,或者沒有創(chuàng)建它的適當(dāng)權(quán)限,則此語句失敗。例:建立一個(gè)student庫。
mysql> create database student;創(chuàng)建表:建立表操作:
語法:create table 表名(? 列名1 列類型 [<列的完整性約束>], ? 列名2 列類型 [<列的完整性約束>], ?......);敘 述:在當(dāng)前數(shù)據(jù)庫下新創(chuàng)建一個(gè)數(shù)據(jù)表。
列類型:表示該列的數(shù)據(jù)類型。例:
建立一個(gè)表school,其由兩列組成,第一列屬性為非空,并做為主鍵,并自增
? create table school(? school_id int(10)not null auto_increment primary key, ? school_name varchar(20)
?);
6、主鍵與外鍵:數(shù)據(jù)表之間的關(guān)聯(lián)/引用關(guān)系是依靠具體的主鍵(primary key)和外鍵(foreign key)建立起來的。
(1)主鍵:幫助MySQL以最快的速度把一條特點(diǎn)的數(shù)據(jù)記錄的位置確定下來。
主鍵必須是唯一的
主鍵應(yīng)該是緊湊的,因此整數(shù)類型比較適合
主鍵
create table student(sid int not null auto_increment, name varchar(20)not null, primary key(sid));(2)外鍵:引用另外一個(gè)數(shù)據(jù)表的某條記錄。
外鍵列類型盡可能與主鍵列類型保持一致 外鍵列應(yīng)該加上NOT NULL 外鍵(自動(dòng)檢查外鍵是否匹配,僅適用InnoDB)
create table score(cid int not null auto_increment primary key, score int, sid int, foreign key(sid)references student(sid));
7、刪除數(shù)據(jù)庫或表操作
? 刪除表操作
語法:drop table [if exists] tab_name [,tab_name]...敘述:從數(shù)據(jù)庫中刪除給定的表。如果給出if exists 子句,則刪除不存在的表不會(huì)出錯(cuò)。
? 刪除數(shù)據(jù)庫操作
語法:drop database [if exists] db_name 敘述:刪除給定的數(shù)據(jù)庫。在刪除一個(gè)數(shù)據(jù)庫后,它就永遠(yuǎn)沒有了,因此要特別小心。如果給出if exists 子句,則刪除不存在的數(shù)據(jù)庫不會(huì)出錯(cuò)。
更改表結(jié)構(gòu)操作:
?
語法:alter table 表名 action;? 說明:action 可以是如下語句:
? add 列名 建表語句 [first | after 列名] 可以為表添加一列,如果沒指定first或者after,則在列尾添加一列,否則在指定列添加新列
? add primary key(列名)為表添加一個(gè)主鍵,如果主鍵已經(jīng)存在,則出現(xiàn)錯(cuò)誤
? add foreign key(列名)references 表名(列名)為表添加一個(gè)外鍵
? alter 列名 set default 默認(rèn)值
可以更改指定列默認(rèn)值
舉例1:
向people表中添加字段address2,類型為varchar,最大長(zhǎng)度為100 ? alter table people add address2 varchar(100);
8、插入記錄操作
? 敘述:
如果表名后面沒寫字段名,則默認(rèn)是向所有的字段添加值,另外字符串值應(yīng)該用‘ ’或“ ”引號(hào)括起來
? 舉例1:向people表中添加一條記錄:
insert into people(name,age)
values(“zhangsan”,20);多表查詢—分類
? 連接查詢
? 同時(shí)涉及多個(gè)表的查詢稱為連接查詢 ? 用來連接兩個(gè)表的條件稱為連接條件
? 內(nèi)連接(INNER JOIN)? 外連接
——左外聯(lián)結(jié)(LEFT JOIN)——右外聯(lián)結(jié)(RIGHT JOIN)
二、算數(shù)運(yùn)算符
(1)用字符串表示的數(shù)字在任何可能便于計(jì)算的地方都被自動(dòng)地轉(zhuǎn)換為數(shù)字。當(dāng)執(zhí)行轉(zhuǎn)換時(shí),MySQL遵循兩個(gè)基本規(guī)則:
? 如果第一位是數(shù)字的字符串被用于一個(gè)算數(shù)運(yùn)算中,那么它被轉(zhuǎn)換為這個(gè)數(shù)字的值。? 如果一個(gè)包含字符和數(shù)字混合的字符串不能被正確的轉(zhuǎn)換為數(shù)字,那么它被轉(zhuǎn)換成0。
(2)比較運(yùn)算符
? 比較運(yùn)算符允許我們對(duì)表達(dá)式的左邊和右邊進(jìn)行比較。一個(gè)比較運(yùn)算符的結(jié)果總是1(真),0(假),或是為NULL(不能確定)。? 比較運(yùn)算符可以用于比較數(shù)字和字符串。數(shù)字作為浮點(diǎn)值比較,而字符串以不區(qū)分大小寫的方式進(jìn)行比較(除非使用特殊的BINARY二進(jìn)制關(guān)鍵字)
在第二章中我們學(xué)習(xí)到了數(shù)據(jù)庫的連接。
1、mysql 連接:
七劍下天山
// 第一賤:連接數(shù)據(jù)庫
? mysql_connect — 打開一個(gè)到 MySQL 服務(wù)器的連接
? mysql_pconnect — 打開一個(gè)到 MySQL 服務(wù)器的持久連接
? //resource mysql_connect([ string $server [, string $username [, string
$password [, bool $new_link [, int $client_flags ]]]]])(在php手冊(cè)中有 ? //mysql 連接:
? // mysql_connect 非持久連接,效率較低,對(duì)資源消耗小 ? // mysql_pconnect 持久連接,效率高,消耗大量的資源 ? $link=mysql_connect('localhost:3306','root','root');? var_dump($link);// 第二賤:判斷連接是否成功
? //第二賤:判斷連接是否成功//mysql_errno — 返回上一個(gè) MySQL 操作中的錯(cuò)誤信息的數(shù)字編碼
? //mysql_error — 返回上一個(gè) MySQL 操作產(chǎn)生的文本錯(cuò)誤信息
? //echo mysql_errno();正確返回0,錯(cuò)誤返回一個(gè)正整數(shù),輸出最近一次的mysql錯(cuò)誤。
// 第三賤:設(shè)置字符集
? bool mysql_set_charset(string $charset [, resource $link_identifier ])? //mysql_set_charset — Sets the client character set ? //bool mysql_set_charset(string $charset [, resource $link_identifier ])? mysql_set_charset('utf8');// 第四賤:選擇數(shù)據(jù)庫
? //mysql_select_db — 選擇 MySQL 數(shù)據(jù)庫 ? mysql_select_db('company11');? mysql_select_db — 選擇 MySQL 數(shù)據(jù)庫 ? 說明
? bool mysql_select_db(string $database_name [, resource $ link_identifier ])? 成功時(shí)返回 TRUE,或者在失敗時(shí)返回 FALSE.? mysql_select_db()設(shè)定與指定的連接標(biāo)識(shí)符所關(guān)聯(lián)的服務(wù)器上的當(dāng)前激活數(shù)據(jù)庫。如果沒有指定連接標(biāo)識(shí)符,則使用上一個(gè)打開的連接。如果沒有打開的連接,本函數(shù)將無參數(shù)調(diào)用 mysql_connect()來嘗試打開一個(gè)并使用之。
// 第五賤:準(zhǔn)備并且發(fā)送sql語句
? //$sql='select * from biao';? //mysql_query($sql)//mysql_query — 發(fā)送一條 MySQL 查詢
//resource mysql_query(string $query [, resource $link_identifier ])// 第六賤: 判斷執(zhí)行結(jié)果,或者遍歷結(jié)果集
? //增刪改的判斷
? $result=mysql_query($sql);(放入第五賤)? if($result && mysql_affected_rows()){ ?
echo '執(zhí)行成功';? }else{ ?
echo '執(zhí)行失敗,或者不存在數(shù)據(jù)';? } ? $sql=“insert into zhiyuan(name,sex,bumen)values('zhou',0,2)”;? $sql=“update zhiyuan set bumen=3 where name='小王'”;? $sql=“insert into zhiyuan(name,sex,bumen)values('小王',0,2)”;// 第七賤:萬賤歸宗 */
之后,學(xué)習(xí)了面向?qū)ο蟆?/p>
1、面對(duì)對(duì)象技術(shù)的基本觀點(diǎn)如下:
(1)客觀世界由對(duì)象組成。
(2)具有相同數(shù)據(jù)(屬性)和操作(方法)的對(duì)象可歸納成類。
(3)類可以派生出子類,子類除了繼承父類的全部特性外還可以有自己的特性(4)對(duì)象之間的聯(lián)系通過消息傳遞(可理解為方法調(diào)用)來維系。
假設(shè)m1是類Manager的一個(gè)實(shí)例(或?qū)ο?,當(dāng)外界要求把這個(gè)對(duì)象所 代表的那位經(jīng)理的級(jí)別改變?yōu)?時(shí),就應(yīng)以下面的方式向這個(gè)對(duì)象發(fā)出一條消息: ml.ChangeLevel(2)消息傳遞
PHP的WEB技術(shù)面向?qū)ο笫欠略飕F(xiàn)實(shí)對(duì)象建立的,他們也有狀態(tài)和行為。軟件對(duì)象在一個(gè) 或多個(gè)變量中維護(hù)它的狀態(tài)。變量是一個(gè)由標(biāo)識(shí)符命名的數(shù)據(jù)項(xiàng)。對(duì)象用方法實(shí)現(xiàn)它的行為。方法是與一個(gè)對(duì)象相關(guān)聯(lián)的函數(shù)(子過程)。
? 對(duì)象有二個(gè)性質(zhì):狀態(tài)(state)和行為(behavior)。? 對(duì)象是一個(gè)封裝數(shù)據(jù)屬性和操作行為的實(shí)體.2、面向?qū)ο?/p>
將相關(guān)的變量和方法封裝進(jìn)一個(gè)簡(jiǎn)潔的軟件組合是一種簡(jiǎn)單而強(qiáng)大的思想,它給軟件開發(fā)人員提供了兩個(gè)主要的好處:
模塊化:一個(gè)對(duì)象的源代碼可以獨(dú)立于其他對(duì)象的源代碼進(jìn)行編寫和維護(hù)。另外,對(duì)象很容易地在系統(tǒng)中傳遞。你可以將你的自行車對(duì)象交給其他人,而它仍然會(huì)正常工作。(重構(gòu)、代碼復(fù)用)
隱藏信息:對(duì)象有一個(gè)公共接口,其他對(duì)象可以使用這個(gè)接口與它通信。對(duì)象可以維護(hù)私有的信息和方法,可以在任何時(shí)候改變這些信息和方法,而不影響依賴于它的其他對(duì)象。你不需要理解你自行車使用的變速齒輪機(jī)制就能夠使用它。即是:封裝
3、類
類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作對(duì)象的集合。
在現(xiàn)實(shí)世界中,常常有相同類型的許多對(duì)象。例如,你的自行車只是世界上的許多自行車之一。用面向?qū)ο蟮男g(shù)語來說,你的自行車對(duì)象是自行車類的一個(gè)實(shí)例。自行車有一些共有的狀態(tài)(當(dāng)前的變速齒輪、當(dāng)前的步調(diào)、兩個(gè)輪子)和行為(改變變速齒輪、剎車)。但是,每輛自行車狀態(tài)獨(dú)立于其他自行車狀態(tài),也就說每輛自行車的狀態(tài)可以互不相同。
? function jia($no1,$no2){ ?
return $no1+$no2;? } ? function jian($no1,$no2){ ?
return $no1-$no2;? } ? function cheng($no1,$no2){ ?
return $no1*$no2;? } ? function chu($no1,$no2){ ?
return $no1/$no2;? } ? function max(){
? echo '我是最大值';? }
4、類的成員-字段(1)、聲明字段 name;?>(2)使用字段
? 與變量不同,使用字段要使用->操作符,而不是美元符號(hào)
– $employee=new Staff();– echo $employee->name;? 當(dāng)在定義字段的類中引用字段時(shí)要使用$this關(guān)鍵字。$this表示當(dāng)前類
5、、構(gòu)造函數(shù)
構(gòu)造函數(shù)是類中的一個(gè)特殊函數(shù),當(dāng)使用 new 操作符創(chuàng)建一個(gè)類的實(shí)例時(shí),構(gòu)造函數(shù)將會(huì)自動(dòng)調(diào)用。
Php5中以__construct()作為構(gòu)造函數(shù)。而php4中是以將和類名相同的函數(shù)作為構(gòu)造函數(shù)。為了兼容php5先尋找__construct(),如果找不到再尋找以類名命名的構(gòu)造函數(shù)
如果一個(gè)類沒有構(gòu)造函數(shù),則調(diào)用基類的構(gòu)造函數(shù) Class Staff { function __construct()//兩個(gè)下劃線 { echo “調(diào)用了構(gòu)造函數(shù)”;} function Staff(){ echo “調(diào)用了構(gòu)造函數(shù)2”;} } $employee=new Staff();? //構(gòu)造方法 函數(shù)
? //特點(diǎn),就是在new 的時(shí)候也就是調(diào)用這個(gè)殼的時(shí)候就進(jìn)行了調(diào)用的方法
? //寫法:php4中只認(rèn)識(shí)一種 類名和函數(shù)名相同的話,那個(gè)函數(shù)就是使構(gòu)造方法 ? //php5中 類名和函數(shù)名相同/__construct()都是構(gòu)造方法
? //注意:構(gòu)造方法在類中只能有一個(gè) 不要寫多個(gè) 使用PHP4的或者PHP5的兩個(gè)相同構(gòu)造方法會(huì)報(bào)重載錯(cuò)誤
? //但是如果一個(gè)PHP4的一個(gè)PHP5的構(gòu)造方法就不會(huì)報(bào)錯(cuò),但是邏輯有問題
? //構(gòu)造方法的參數(shù)傳值,是在調(diào)用類的時(shí)候()放的就是為構(gòu)造方法準(zhǔn)備的參數(shù) //析構(gòu)方法 函數(shù) __destruct()? //特點(diǎn),析構(gòu)方法是在調(diào)用完之后,自動(dòng)執(zhí)行 在接收類調(diào)用的變量改值的時(shí)候/或者頁面結(jié)束 自動(dòng)啟動(dòng)
? //聲明關(guān)鍵字 [private protected public var ]
6、析構(gòu)函數(shù)
(1)析構(gòu)函數(shù)會(huì)在到某個(gè)對(duì)象的所有引用都被刪除或者當(dāng)對(duì)象被顯式銷毀時(shí)執(zhí)行。腳本執(zhí)行結(jié)束時(shí),php會(huì)撤銷內(nèi)存中的所有對(duì)象,因此如果實(shí)例化時(shí)創(chuàng)建的信息都會(huì)保留到內(nèi)存中,就不需要顯式的聲明析構(gòu)函數(shù)。但是如果創(chuàng)建了不那么容易丟失的數(shù)據(jù)時(shí)(例如連接數(shù)據(jù)庫)就應(yīng)當(dāng)定制析構(gòu)函數(shù)進(jìn)行銷毀數(shù)據(jù)。Class Staff { function __construct(){ echo “調(diào)用了構(gòu)造函數(shù)”;} function __destruct(){ echo “調(diào)用了析構(gòu)函數(shù),需要釋放和銷毀的“;} } $employee=new Staff();(2)類的成員-屬性_set()__set()//兩個(gè)下劃線
$this->$propname=$propvalue;
print ”ok
“;} } $model=new Test();$model->age=25;$model->title=”English“;echo ”
“;print ”age: “.$model->age.”
“;echo ”
“;print ”title: “.$model->title.”
“;?> 可用來驗(yàn)證某個(gè)屬性是否存在或增加新的屬性
7、控制對(duì)類的成員訪問
(1)public :在任何位置都可以讀取和修改這個(gè)成員變量或者調(diào)用這個(gè)方法。這個(gè)修飾符在外部代碼使用,由給定類中的代碼使用,或者在擴(kuò)展給定類的功能的類中使用。
(2)private : 只有這個(gè)類中的代碼才能讀取和修改私有變量或者調(diào)用私有成員函數(shù)。其他代碼、類或者擴(kuò)展這個(gè)類的功能類(子類)不能使用私有條目。
(3)protected : 外部代碼與給定類不相關(guān)的其他類不能讀取或者修改使用了關(guān)鍵字protected的成員變量,也不能調(diào)用受保護(hù)的成員函數(shù)。(4)abstract 定義抽象類
(5)final 子類方法不允許覆蓋父類方法 先了解,下一章重點(diǎn)闡述
8、靜態(tài)類成員
當(dāng)需要一些所有類對(duì)象共享的字段和方法時(shí)就需要?jiǎng)?chuàng)建一些靜態(tài)的字段和方法。Class Staff { public static $name=”靜態(tài)字段“;static function show(){
echo self::$name,”
“;} } echo Staff::$name,”
“;Staff::show();
9、常量
常量(const)即不會(huì)在類中改變的值,對(duì)于該類的任何實(shí)例化的對(duì)象來說 常量值在這些對(duì)象的整個(gè)生命周期中都保持不變 Class Staff { const CITY=“北京”;} echo Staff::CITY;
之后,學(xué)習(xí)了PHP正則表達(dá)式
1、正則表達(dá)式簡(jiǎn)介
正則表達(dá)式是用于描述字符排列模式一種語法規(guī)則。它主要用于字符串的模式分割、匹配、查找及替換操作。到目前為止,我們前面所用過的精確(文本)匹配也是一種正則表達(dá)式。
在PHP中,正則表達(dá)式一般是由正規(guī)字符和一些特殊字符(類似于通配符)聯(lián)合構(gòu)成的一個(gè)文本模式的程序性描述。
在程序語言中,通常將模式表達(dá)式(即正則表達(dá)式)包含在兩個(gè)反斜線“/”之間,如“/apple/”。用戶只要把需要匹配的模式內(nèi)容放入定界之間即可。
如果使用一個(gè)沒有特殊字符的正則表達(dá)式,相當(dāng)于純文本搜索,使用strstr()函數(shù)也可達(dá)到同樣的效果。
2、^ 和 $ ”^The“: 開頭一定要有”The“字符串;”of despair$“: 結(jié)尾一定要有”of despair“ 的字符串;那么, ”^abc$“: 就是要求以abc開頭和以abc結(jié)尾的字符串,實(shí)際上是只有abc匹配
”notice“: 匹配包含notice的字符串 你可以看見如果你沒有用我們提到的兩個(gè)字符(最后一個(gè)例子),就是說 模式(正則表達(dá)式)可以出現(xiàn)在被檢驗(yàn)字符串的任何地方,你沒有把他鎖定到兩邊(開始或結(jié)束)
3、'*', '+',和 '?', * 表示出現(xiàn)0次或1次或多次 相當(dāng)于{0,}, + 表示出現(xiàn)1次或多次 相當(dāng)于{1,}, ? 表示出現(xiàn)0次或1次 相當(dāng)于{0,1}, 這里是一些例子: ”ab*“: 和ab{0,}同義,匹配以a開頭,后面可以接0個(gè)或者N個(gè)b組成的字符串(”a“, ”ab“, ”abbb“, 等);”ab+“: 和ab{1,}同義,同上條一樣,但最少要有一個(gè)b存在(”ab“, ”abbb“, 等.);”ab?“:和ab{0,1}同義,可以沒有或者只有一個(gè)b;”a?b+$“: 匹配以一個(gè)或者0個(gè)a再加上一個(gè)以上的b結(jié)尾的字符串.要點(diǎn), '*', '+',和 '?'只管它前面那個(gè)字符.4、[ ] 中括號(hào)括住的內(nèi)容只匹配一個(gè)單一的字符
”[ab]“: 匹配單個(gè)的 a 或者 b(和 ”a|b“ 一樣);”[a-d]“: 匹配'a' 到'd'的單個(gè)字符(和”a|b|c|d“ 還有 ”[abcd]“效果一樣);一般我們都用[a-zA-Z]來指定字符為一個(gè)大小寫英文 ”^[a-zA-Z]“: 匹配以大小寫字母開頭的字符串 ”[0-9]%“: 匹配含有 形如 x% 的字符串
”,[a-zA-Z0-9]$“: 匹配以逗號(hào)再加一個(gè)數(shù)字或字母結(jié)尾的字符串
5、正則表達(dá)式的語法規(guī)則
正則表達(dá)式是主要由: ? 原子(普通字符,如英文字符)? 元字符(有特殊功用的字符)? 以及模式修正字符組成。
一個(gè)正則表達(dá)式中至少包含一個(gè)原子。
6、PHP中的正則表達(dá)式函數(shù)
在PHP中有兩套正則表達(dá)式函數(shù)庫。
? 一套是由PCRE(Perl Compatible Regular Expression)庫提供的。PCRE庫使用和perl相同的語法規(guī)則實(shí)現(xiàn)了正則表達(dá)式的模式匹配,其使用以“preg_”為前綴命名的函數(shù)。
? 另一套是由POSIX(Portable Operation System interface)擴(kuò)展庫提供的。POSIX擴(kuò)展的正則表達(dá)式由POSIX 1003.2定義,一般使用以“ereg_”為前綴命名的函數(shù)。
? 兩套函數(shù)庫的功能相似,執(zhí)行效率稍有不同。一般而言,實(shí)現(xiàn)相同的功能,使用PCRE庫的效率略占優(yōu)勢(shì)。
7、、正則表達(dá)式的拆分
1split()和spliti()函數(shù)原型:
? array split(string $pattern,string $string[,int $limit])本函數(shù)返回一個(gè)字符串?dāng)?shù)組,每個(gè)單元為$string經(jīng)正則表達(dá)式$pattern作為邊界分割出的子串。如果設(shè)定了$limit,則返回的數(shù)組最多包含$limit個(gè)單元。而其中最后一個(gè)單元包含了$string中剩余的所有部分。Spliti是split的忽略大小版本。
之后,學(xué)習(xí)了文件系統(tǒng)處理。
open()打開文件或者URL $file=fopen('1.txt','r');//只讀模式打開 //r 只能讀取不能寫入
//r+ 增強(qiáng)的讀寫模式 表示以只讀模式打開,但是仍然可以進(jìn)行部分的寫入操作 //w 寫模式 打開文件的時(shí)候,原有內(nèi)容會(huì)被清空 如果文件不存在就新建一個(gè)文件,再打開
//w+ 增強(qiáng)的讀寫模式
//a 追加模式(寫)不會(huì)清空原有文件而是在源文件的基礎(chǔ)上進(jìn)行累加 不存在也可以新建
//a+ 增強(qiáng)的追加模式(讀寫)/x異或模式 文件存在就報(bào)錯(cuò),不存在就創(chuàng)建 //x+增強(qiáng)的異或模式 //b 打開二進(jìn)制文件
1、文件的打開
2、文件的刪除
//rename('1.txt','1.exe');/ /刪除
rmdir('C')//刪除空目錄 ?>
3、什么是文件系統(tǒng)
就是對(duì)系統(tǒng)或者服務(wù)器中的文件進(jìn)行操作,增刪改查,文件的上傳和下載
4、文件系統(tǒng)能做什么?
a)文件緩存的應(yīng)用 b)配置文件的應(yīng)用
c)FTP站點(diǎn)主要是FTP下載站 d)站點(diǎn)頁面的靜態(tài)化 e)文件的上傳和下載。
5、文件下載:查找 header
header('content-type:image/gif');//告訴瀏覽器你的文件描述
header('Content-Disposition: attachment;filename=”baidu.gif"');//告訴瀏覽器文件的大小
header('content-length'.filesize('baidu.gif'));//顯示內(nèi)容
readfile('baidu.gif');?>
三、個(gè)人收獲
學(xué)習(xí)PHP的過程做一下概括:
(1)熟悉HTML/CSS/JS等網(wǎng)頁基本元素,完成階段可自行制作完整的網(wǎng)頁,對(duì)元素屬性達(dá)到熟悉程度
(2)理解動(dòng)態(tài)語言的概念,運(yùn)做機(jī)制,熟悉PHP語法
(3)學(xué)習(xí)如何將PHP與HTML結(jié)合起來完成簡(jiǎn)單動(dòng)態(tài)頁面
(4)接觸MYSQL,開始設(shè)計(jì)數(shù)據(jù)庫程序
(5)不斷鞏固,摸透大部分PHP常用函數(shù),并可理解OOP,MYSQL優(yōu)化,以及模板
(6)完成一個(gè)功能齊全的動(dòng)態(tài)站點(diǎn)
通過這段時(shí)間的學(xué)習(xí),自己受益匪淺,知道了很多關(guān)于PHP的東西,學(xué)會(huì)了很多內(nèi)容。在這堂課的學(xué)習(xí)過程中我認(rèn)真聽講,上機(jī)認(rèn)真練習(xí),遇到難題,自己思考與探索,不斷地尋求進(jìn)步,請(qǐng)教老師和同學(xué),雖然上半年沒有學(xué)習(xí)這門課程,不過老師講課非常仔細(xì),然后同學(xué)們一步步自己跟著老師做,還是能跟得上,等著以后自己做畢業(yè)設(shè)計(jì)也有一定的幫助。