本書循序漸進地介紹了PHP 7 MySQL 5.7開發(fā)動態(tài)網站的主要知識和技能,提供了大量的PHP和MySQL開發(fā)實例供讀者實踐。每一章都清晰地講述了代碼作用及其編寫思路,使讀者能在*短時間內迅速掌握PHP的應用開發(fā)技能。
全書共21章,分別介紹了PHP 7的基本概念、PHP服務器環(huán)境配置、PHP的基本語法、PHP的語言結構、字符串和正則表達式、數組、時間和日期、面向對象、錯誤處理和異常處理、PHP與Web頁面交互、文件與目錄操作、圖形圖像處理、Cookie與會話管理、MySQL 5.7數據庫基礎、數據表的基本操作、數據的基本操作、數據庫的備份與還原、PHP操作MySQL數據庫等,*后通過兩個綜合案例,使讀者進一步鞏固所學的知識,提高綜合實戰(zhàn)能力。
本書適合PHP MySQL動態(tài)網站開發(fā)的初學者,以及廣大網站開發(fā)人員,也可供高等院校和培訓學校相關專業(yè)的師生教學參考。
PHP是一種跨平臺的開源的服務器端嵌入式腳本語言,MySQL是*流行的關系型數據庫管理系統(tǒng),它們的配合使得Web開發(fā)者能夠快速地寫出動態(tài)生成頁面的腳本,從而在全球獲得越來越多網站開發(fā)人員的青睞。本書的開發(fā)小組具有豐富的網站開發(fā)經驗,篩選出適合教學的開發(fā)案例,詳細介紹了PHP MYSQL 動態(tài)網站開發(fā)的所有重要知識。本書通過結合不同難度的案例,比較全面地介紹PHP MYSQL 動態(tài)網站開發(fā)技術。本書內容對于初學者來說理解起來極其容易,可以快速入門,只需要幾個小時就可以自己編寫一些簡單的腳本。希望這本書能幫助喜歡PHP的朋友,完整掌握PHP MYSQL 動態(tài)網站開發(fā)的技術要點,并具備動態(tài)網站開發(fā)能力。
前 言
PHP MySQL的組合是目前世界上最為流行的Web開發(fā)工具。由于大型互聯網站廣泛使用這種開發(fā)技術,目前學習和關注PHP MySQL的人越來越多,本書作者針對PHP MySQL的初學者,從通俗易懂、容易入門和案例實用的目標出發(fā),組織有豐富經驗的開發(fā)人員,編寫了這本PHP 7 MySQL 5.7動態(tài)網站開發(fā)的教材。本書內容全書共21章,主要介紹了PHP 7的基本概念、PHP編程的服務器環(huán)境配置、PHP的基本語法、PHP的語言結構、字符串和正則表達式、數組、時間和日期、面向對象、錯誤處理和異常處理、PHP與Web頁面交互、文件與目錄操作、圖形圖像處理、Cookie與會話管理、MySQL 5.7數據庫基礎、數據表的基本操作、數據的基本操作、數據庫的備份與還原、PHP操作MySQL數據庫等,最后通過兩個綜合案例,使讀者進一步鞏固所學的知識,提高綜合實戰(zhàn)能力。本書特色? 知識全面:涵蓋了所有PHP MySQL開發(fā)的知識點,讀者可以由淺入深地掌握PHP MySQL動態(tài)網站開發(fā)技術。? 圖文并茂:注重操作,在介紹案例的過程中,每一個操作均有對應的插圖。這種圖文結合的方式使讀者在學習過程中能夠直觀、清晰地看到操作的過程以及效果,便于更快地理解和掌握。? 易學易用:顛覆傳統(tǒng)看書的觀念,變成一本能操作的圖書。? 案例豐富:把知識點融匯于系統(tǒng)的案例實訓當中,并且結合經典案例進行講解和拓展。進而達到知其然,并知其所以然的效果。? 提示技巧:本書對讀者在學習過程中可能會遇到的疑難問題以提示和技巧的形式進行了說明,以免讀者在學習的過程中走彎路。? 技術實用:本書所有案例都是模仿現實網站開發(fā)而設計,通過本書最后兩個綜合案例,讓讀者快速創(chuàng)建動態(tài)的PHP MySQL企業(yè)網站。讀者對象本書是一本完整介紹PHP MySQL動態(tài)網站開發(fā)技術的教程,內容豐富,條理清晰,實用性強,適合如下讀者學習使用:? 對PHP MySQL動態(tài)網站制作有興趣的初學者,可以快速入門。? 對PHP語言感興趣的初學者,可以快速掌握PHP語言開發(fā)基本技巧。? MySQL數據庫的初學者,可以快速掌握MySQL的基本操作方法。? PHP MySQL架構的Web系統(tǒng)開發(fā)人員。致謝本書主要有張工廠主編,參與本書編寫人員還有胡同夫、王英英、劉增杰、肖品、孫若淞、王攀登、王維維、梁云亮、劉海松、陳偉光、劉增產、包惠利和劉玉萍等。本書雖然傾注了編者的努力,但由于水平有限、時間倉促,書中難免有疏漏之處,請讀者諒解,如果遇到問題或有意見和建議,敬請與我們聯系,我們將全力提供幫助,技術支持QQ群:2606372761。源碼、課件和教學視頻下載本書配套源碼、課件和教學視頻下載地址(注意數字和字母大小寫)如下:http://pan.baidu.com/s/1hswmnYG如果下載有問題,請電子郵件聯系booksaga@163.com,郵件主題為PHP MySQL編程。
編者2016年11月
張工廠,微谷科技有限公司技術總監(jiān),技術主攻方向為PHP軟件開發(fā)和MySQL數據庫,具有很強的實戰(zhàn)經驗。長期從事PHP、MySQL的外包服務,對市場使用有著較為長期的經驗。熟悉流行的電子商務應用規(guī)則,熟悉技術應用方案與方向。對PHP、MySQL系統(tǒng)有較為廣泛與深入的認識。
目 錄
第1章 初識PHP 1
1.1
PHP的發(fā)展 1
1.1.1
PHP的概念 1
1.1.2
PHP的發(fā)展歷程 1
1.1.3
PHP語言的優(yōu)勢 2
1.2
PHP的應用領域 3
1.3
PHP 7的新特點 3
1.4
PHP常用開發(fā)工具 5
1.4.1
PHP代碼開發(fā)工具 5
1.4.2
網頁設計工具 6
1.4.3
文本編輯工具 6
1.5 高手私房菜 8
1.6 經典習題 8
第2章 配置PHP 7服務器環(huán)境 9
2.1
PHP服務器概述 9
2.2 安裝PHP 7前的準備工作 10
2.2.1
軟硬件環(huán)境 10
2.2.2
獲取PHP 7安裝資源包 10
2.3
PHP 7 Apache服務器的環(huán)境搭建 12
2.3.1
Apache簡介 12
2.3.2
關閉原有的網站服務器 13
2.3.3
安裝Apache 13
2.3.4
將PHP與Apache建立關聯 14
2.4
PHP環(huán)境的集成軟件 16
2.5 實戰(zhàn)演練我的第一個PHP程序 19
2.6 高手私房菜 20
2.7 經典習題 20
第3章 PHP 7的基本語法 21
3.1
PHP標識符 21
3.1.1
短風格 21
3.1.2
script風格 21
3.1.3
ASP風格 22
3.2 編碼規(guī)范 22
3.2.1
什么是編碼規(guī)范 22
3.2.2
PHP中的編碼規(guī)范 22
3.3 常 量 24
3.3.1
聲明和使用常量 24
3.3.2
內置常量 25
3.4 變 量 27
3.4.1
PHP中的變量聲明 27
3.4.2
可變變量與變量的引用 28
3.4.3
變量作用域(variable scope) 29
3.4.4
變量的銷毀 32
3.5 數據的類型 33
3.5.1
什么是類型 33
3.5.2
整型(integer) 34
3.5.3
浮點型(float或double) 34
3.5.4
布爾型(boolean) 34
3.5.5
字符串型(string) 34
3.5.6
數組型(array) 35
3.5.7
對象型(object) 37
3.5.8
NULL型 38
3.5.9
資源類型(resource) 38
3.5.10
數據類型之間的相互轉換 38
3.6 標量類型的聲明 39
3.7 運算符 40
3.7.1
算術運算符 40
3.7.2
字符串運算符 41
3.7.3
賦值運算符 42
3.7.4
比較運算符 42
3.7.5
邏輯運算符 43
3.7.6
按位運算符 44
3.7.7
否定控制運算符 45
3.7.8
錯誤控制運算符 45
3.7.9
三元運算符 46
3.7.10
運算符的優(yōu)先級和結合規(guī)則 46
3.8 表達式 46
3.9 實戰(zhàn)演練創(chuàng)建多維數組
47
3.10
高手私房菜 47
3.11
經典習題 48
第4章 PHP語言結構 49
4.1 內置函數 49
4.2 自定義函數 50
4.2.1
自定義和調用函數 50
4.2.2
向函數傳遞參數值 50
4.2.3
向函數傳遞參數引用 51
4.2.4
從函數中返回值 52
4.2.5
對函數的引用 53
4.2.6
對函數取消引用 54
4.3 包含文件 54
4.3.1
require和include 54
4.3.2
include_once和require_once 55
4.4 流程控制概述 55
4.5 條件控制結構 56
4.5.1
單一條件分支結構(if語句) 56
4.5.2
雙向條件分支結構(if…else語句) 57
4.5.3
多向條件分支結構(elseif語句) 58
4.5.4
多向條件分支結構(switch語句) 59
4.6 循環(huán)控制結構 60
4.6.1
while循環(huán)語句 60
4.6.2
do…while循環(huán)語句 61
4.6.3
for循環(huán)語句 62
4.6.4
foreach循環(huán)語句 63
4.6.5
流程控制的另一種書寫格式 64
4.6.6
使用break/continue語句跳出循環(huán) 66
4.7 實戰(zhàn)演練1條件分支結構綜合應用
67
4.8 實戰(zhàn)演練2循環(huán)控制結構綜合應用
69
4.9 高手私房菜 70
4.10
經典習題 70
第5章 字符串和正則表達式 71
5.1 字符串的單引號和雙引號
71
5.2 字符串的連接符 72
5.3 字符串的基本操作 74
5.3.1
手動和自動轉義字符串中的字符 74
5.3.2
計算字符串的長度 74
5.3.3
字符串單詞統(tǒng)計 75
5.3.4
清理字符串中的空格 75
5.3.5
字符串的切分與組合 76
5.3.6
字符串子串的截取 77
5.3.7
字符串子串替換 78
5.3.8
字符串查找 78
5.3.9
大小寫轉換 79
5.4 什么是正則表達式 80
5.5 正則表達式語法規(guī)則 80
5.6 實戰(zhàn)演練創(chuàng)建酒店系統(tǒng)在線訂房表 85
5.7 高手私房菜 88
5.8 經典習題 89
第6章 PHP數組 90
6.1 什么是數組 90
6.2 數組的類型 90
6.2.1
數字索引數組 90
6.2.2
關聯索引數組 92
6.3
PHP 常量數組 92
6.4 數組構造 93
6.4.1
一維數組 93
6.4.2
多維數組 93
6.5 遍歷數組 95
6.5.1
遍歷一維數字索引數組 95
6.5.2
遍歷一維聯合索引數組 96
6.5.3
遍歷多維數組 97
6.6 數組排序 98
6.6.1
一維數組排序 98
6.6.2
多維數組排序 100
6.7 字符串與數組的轉換 101
6.8 向數組中添加和刪除元素
102
6.8.1
向數組中添加元素 102
6.8.2
從數組中刪除元素 103
6.9 查詢數組中指定元素 105
6.10
統(tǒng)計數組元素個數 106
6.11
刪除數組中的重復元素 108
6.12
調換數組中的鍵值和元素值 108
6.13
實戰(zhàn)演練數組的序列化 109
6.14
高手私房菜 110
6.15
經典習題 110
第7章 時間和日期 111
7.1 系統(tǒng)時區(qū)設置 111
7.1.1
時區(qū)劃分 111
7.1.2
時區(qū)設置 111
7.2
PHP日期和時間函數 112
7.2.1
關于UNIX時間戳 112
7.2.2
獲取當前時間戳 112
7.2.3
獲取當前日期和時間 113
7.2.4
使用時間戳獲取日期信息 113
7.2.5
檢驗日期的有效性 116
7.2.6
輸出格式化時間戳的日期和時間 116
7.2.7
顯示本地化的日期和時間 118
7.2.8
將日期和時間解析為UNIX時間戳 119
7.2.9
日期和時間在PHP和MySQL數據格式之間的轉換 119
7.3 實戰(zhàn)演練1比較兩個時間的大小
120
7.4 實戰(zhàn)演練2實現倒計時功能 120
7.5 高手私房菜 121
7.6 經典習題 121
第8章 面向對象編程 122
8.1 類和對象的介紹 122
8.2
PHP中類的操作 123
8.2.1
類的聲明 123
8.2.2
成員屬性 124
8.2.3
成員方法 124
8.2.4
類的實例化 124
8.2.5
訪問類中的成員屬性和方法 125
8.3 構造方法和析構方法 127
8.4 訪問方法 129
8.5 類的繼承 130
8.6 高級特性 131
8.6.1
靜態(tài)屬性和方法 131
8.6.2
final類和方法 132
8.7 抽象類和接口 134
8.7.1
抽象類 134
8.7.2
接口 135
8.8 面向對象的多態(tài)性 136
8.8.1
通過繼承實現多態(tài) 137
8.8.2
通過接口實現多態(tài) 138
8.9 高手私房菜 139
8.10
經典習題 139
第9章 錯誤處理和異常處理 140
9.1 常見的錯誤和異常 140
9.2 錯誤處理 143
9.2.1
php.ini中的錯誤處理機制 143
9.2.2
應用DIE語句調試 144
9.2.3
自定義錯誤和錯誤觸發(fā)器 145
9.2.4
錯誤記錄 148
9.3 異常處理 149
9.3.1
異常的基本處理方法 149
9.3.2
自定義的異常處理器 151
9.3.3
處理多個異常 152
9.3.4
設置頂層異常處理器 153
9.4 實戰(zhàn)演練處理異;蝈e誤
154
9.5 高手私房菜 155
9.6 經典習題 156
第10章 PHP與Web頁面的交互 157
10.1
使用動態(tài)內容 157
10.2
表單與PHP 158
10.3
表單設計 158
10.3.1
表單基本結構 159
10.3.2
文本框 159
10.3.3
選項框 160
10.3.4
單選按鈕 162
10.3.5
下拉列表 163
10.3.6
重置按鈕 165
10.3.7
提交按鈕 165
10.4
傳遞數據的兩種方法 168
10.4.1
用POST方式傳遞數據 168
10.4.2
用GET方式傳遞數據 168
10.5
PHP獲取表單傳遞數據的方法 170
10.6
PHP對URL傳遞的參數進行編碼 170
10.7
實戰(zhàn)演練PHP與Web表單的綜合應用 171
10.8
高手私房菜 173
10.9
經典習題 173
第11章 PHP文件與目錄操作 174
11.1
文件操作 174
11.1.1
文件數據的寫入 174
11.1.2
文件數據的讀取 178
11.2
目錄操作 179
11.3
文件的上傳 184
11.4
實戰(zhàn)演練編寫文本類型的訪客計算器 187
11.5
高手私房菜 188
11.6
經典習題 188
第12章 圖形圖像處理 189
12.1
在PHP中加載GD庫 189
12.2
圖形圖像的典型應用案例 191
12.2.1
創(chuàng)建一個簡單的圖像 191
12.2.2
使用GD2函數在照片上添加文字 193
12.2.3
使用TrueType字體處理中文生成的圖片 194
12.3
Jpgraph庫的使用 196
12.3.1
Jpgraph的安裝 196
12.3.2
Jpgraph的配置 197
12.3.3
制作柱形與折線統(tǒng)計圖 197
12.3.4
制作圓形統(tǒng)計圖 199
12.4
實戰(zhàn)演練制作3D餅形統(tǒng)計圖 201
12.5
高手私房菜 203
12.6
經典習題 203
第13章 Cookie和會話管理 204
13.1
Cookie基本操作 204
13.1.1
什么是Cookie 204
13.1.2
創(chuàng)建Cookie 205
13.1.3
讀取Cookie 205
13.1.4
刪除Cookie 206
13.2
認識Session 208
13.2.1
什么是Session 208
13.2.2
Session的基本功能 208
13.2.3
Cookie與Session 208
13.2.4
在Cookie或URL中存儲Session ID 209
13.3
會話管理 209
13.3.1
創(chuàng)建會話 209
13.3.2
注冊會話變量 210
13.3.3
使用會話變量 210
13.3.4
注銷和銷毀會話變量 211
13.4
實戰(zhàn)演練會話管理的綜合應用 212
13.5
高手私房菜 213
13.6
經典習題 214
第14章 MySQL數據庫基礎 215
14.1
什么是MySQL 215
14.1.1
客戶機-服務器軟件 215
14.1.2
MySQL版本 216
14.1.3
MySQL的優(yōu)勢 216
14.2
啟動服務并登錄MySQL數據庫 217
14.2.1
啟動MySQL服務 217
14.2.2
登錄MySQL數據庫 218
14.2.3
配置Path變量 220
14.3
MySQL常用圖形管理工具 221
14.4
高手私房菜 222
14.5
經典習題 222
第 15 章 數據庫的基本操作 223
15.1
創(chuàng)建數據庫 223
15.2
刪除數據庫 224
15.3
實戰(zhàn)演練數據庫的創(chuàng)建和刪除 225
15.4
高手私房菜 227
15.5
經典習題 228
第 16 章 數據表的基本操作 229
16.1
創(chuàng)建數據表 229
16.1.1
創(chuàng)建表的語法形式 229
16.1.2
使用主鍵約束 230
16.1.3
使用外鍵約束 232
16.1.4
使用非空約束 233
16.1.5
使用唯一性約束 233
16.1.6
使用默認約束 234
16.1.7
設置表的屬性值自動增加 235
16.2
查看數據表結構 236
16.2.1
查看表基本結構語句DESCRIBE 236
16.2.2
查看表詳細結構語句SHOW CREATE TABLE 237
16.3
修改數據表 238
16.3.1
修改表名 238
16.3.2
修改字段的數據類型 239
16.3.3
修改字段名 240
16.3.4
添加字段 241
16.3.5
刪除字段 243
16.3.6
修改字段的排列位置 244
16.3.7
更改表的存儲引擎 245
16.3.8
刪除表的外鍵約束 246
16.4
刪除數據表 247
16.4.1
刪除沒有被關聯的表 248
16.4.2
刪除被其他表關聯的主表 248
16.5
實戰(zhàn)演練數據表的基本操作 250
16.6
高手私房菜 258
16.7
經典習題 258
第17章 數據的基本操作 260
17.1
插入數據 260
17.1.1
為表的所有字段插入數據 260
17.1.2
為表的指定字段插入數據 262
17.1.3
同時插入多條記錄 263
17.2
更新數據 265
17.3
刪除數據 267
17.4
查詢數據 269
17.4.1
查詢所有字段 272
17.4.2
查詢指定字段 273
17.4.3
查詢指定記錄 274
17.4.4
帶IN關鍵字的查詢 276
17.4.5
帶BETWEEN AND的范圍查詢 278
17.4.6
帶LIKE的字符匹配查詢 279
17.4.7
查詢空值 281
17.4.8
帶AND的多條件查詢 281
17.4.9
帶OR的多條件查詢 282
17.4.10
查詢結果不重復 284
17.4.11
對查詢結果排序 285
17.5
實戰(zhàn)演練數據表綜合應用案例 289
17.6
高手私房菜 297
17.7
經典習題 297
第18章 數據庫的備份與還原 299
18.1
數據備份 299
18.1.1
使用MySQLdump命令備份 299
18.1.2
直接復制整個數據庫目錄 305
18.1.3
使用MySQLhotcopy工具快速備份 306
18.2
數據恢復 306
18.2.1
使用MySQL命令恢復 306
18.2.2
直接復制到數據庫目錄 307
18.2.3
MySQLhotcopy快速恢復 308
18.3
數據庫遷移 308
18.3.1
相同版本的MySQL數據庫之間的遷移 308
18.3.2
不同版本的MySQL數據庫之間的遷移 309
18.3.3
不同數據庫之間的遷移 309
18.4
表的導出和導入 309
18.4.1
使用SELECTI…INTO OUTFILE導出文本文件 309
18.4.2
使用MySQLdump命令導出文本文件 312
18.4.3
使用MySQL命令導出文本文件 315
18.4.4
使用LOAD DATA INFILE方式導入文本文件 318
18.4.5
使用MySQLimport命令導入文本文件 320
18.5
實戰(zhàn)演練數據的備份與恢復 322
18.6
高手私房菜 325
18.7
經典習題 326
第19章 PHP操作MySQL數據庫 327
19.1
PHP訪問MySQL數據庫的一般步驟 327
19.2
連接數據庫前的準備工作 327
19.3
訪問數據庫 328
19.3.1
使用mysqli_connect()函數連接MySQL服務器 329
19.3.2
使用mysqli_select_db()函數更改默認的數據庫 330
19.3.3
使用mysqli_close()函數關閉MySQL連接 331
19.3.4
使用mysqli_query()函數執(zhí)行SQL語句 331
19.3.5
獲取查詢結果集中的記錄數 332
19.3.6
獲取結果集的一條記錄作為枚舉數組 333
19.3.7
獲取結果集的記錄作為關聯數組 334
19.3.8
獲取結果集中的記錄作為對象 334
19.3.9
使用mysqli_fetch_array()函數獲取結果集記錄 335
19.3.10
使用mysqli_free_result()函數釋放資源 335
19.4
實戰(zhàn)演練1PHP操作數據庫 336
19.5
實戰(zhàn)演練2使用insert語句動態(tài)添加用戶信息 337
19.6
實戰(zhàn)演練3使用select語句查詢數據信息 339
19.7
高手私房菜 341
19.8
經典習題 341
第20章 新聞發(fā)布系統(tǒng)數據庫設計
342
20.1
系統(tǒng)概述 342
20.2
系統(tǒng)功能 343
20.3
數據庫設計和實現 343
20.3.1
設計表 343
20.3.2
設計索引 348
20.3.3
設計視圖 348
20.3.4
設計觸發(fā)器 349
第21章 PHP MySQL開發(fā)論壇實戰(zhàn) 350
21.1
網站的需求分析 350
21.1.1
需求分析 350
21.1.2
網站功能模塊分析 350
21.2
數據庫分析 351
21.2.1
分析數據庫 351
21.2.2
創(chuàng)建數據表 351
21.3
論壇的代碼實現 352
21.3.1
數據庫連接相關文件 352
21.3.2
論壇主頁面 359
21.3.3
新用戶注冊頁面 364
21.3.4
論壇帖子的相關頁面 367
21.3.5
后臺管理系統(tǒng)的相關頁面 378