PHP與MySQL程序設計 第5版

[美] 弗蘭克·M.克羅曼(Frank M. Kromann)

  • 出版商: 人民郵電
  • 出版日期: 2020-08-01
  • 售價: $834
  • 貴賓價: 9.5$792
  • 語言: 簡體中文
  • 頁數: 446
  • ISBN: 7115543593
  • ISBN-13: 9787115543592
  • 相關分類: MySQLPHP 程式語言SQL

立即出貨 (庫存 < 4)

  • PHP與MySQL程序設計 第5版-preview-1
  • PHP與MySQL程序設計 第5版-preview-2
PHP與MySQL程序設計 第5版-preview-1

買這商品的人也買了...

相關主題

商品描述

本書是全面講述PHP 與MySQL 的經典暢銷之作,不但詳細介紹了這兩種技術及其相關工具的核心特性,還講解瞭如何高效地結合這兩種技術構建出健壯的數據驅動的應用程序。書中大量實際的示例和深入的分析均來自於作者在這方面多年的專業經驗,可用於解決開發者在實際工作中所面臨的各種挑戰。第5 版涵蓋了PHP 7 的新增功能以及新版MySQL 的新特性。

作者簡介

弗兰克·M.克罗曼(Frank M. Kromann)

Amazon软件开发经理,Web by Pixel公司联合创始人兼CEO,有20余年开发和管理经验的PHP专家,在使用软件和技术解决商业问题方面有30余年经验。在杂志上发表过多篇PHP文章,另合著有《PHP 5范例代码查询辞典》。

目錄大綱

第 1 章 PHP 簡介    1

1.1 PHP 核心特性    1

1.1.1 實用性    1

1.1.2 能力    3

1.1.3 可能性    3

1.1.4 價格    3

1.2 PHP 現狀    4

1.3 PHP 生態系統    5

1.3.1 Drupal    5

1.3.2 WordPress    6

1.3.3 Magento    6

1.3.4 MediaWiki    6

1.3.5 SugarCRM    6

1.3.6 Zend Framework    6

1.4 小結    7

第 2 章 環境配置    8

2.1 選擇主機環境    9

2.1.1 虛擬服務器    9

2.1.2 平臺即服務(PaaS)    9

2.2 安裝先決條件    9

2.2.1 Windows    9

2.2.2 macOS    14

2.2.3 Linux    15

2.2.4 從源代碼安裝    15

2.3 配置PHP    15

2.3.1 Apache httpd.conf 和.htaccess文件    16

2.3.2 在運行腳本中配置    17

2.3.3 PHP 的配置指令    17

2.4 選擇編輯器    23

2.4.1 PHPStorm    23

2.4.2 Atom    23

2.4.3 Sublime Text    23

2.4.4 Visual Studio Code    23

2.4.5 PDT(PHP 開發工具)    23

2.4.6 Zend Studio    23

2.5 小結    24

第3 章 PHP 基礎    25

3.1 在網頁中嵌入PHP 代碼    25

3.1.1 默認語法    25

3.1.2 短標簽    26

3.1.3 嵌入多個代碼塊    26

3.2 在代碼中添加註釋    27

3.2.1 單行C++語法    27

3.2.2 多行註釋    27

3.3 向客戶端輸出數據    28

3.3.1 使用printf()語句進行復雜輸出    29

3.3.2 sprintf()語句    30

3.4 PHP 數據類型    30

3.4.1 標量數據類型    30

3.4.2 復合數據類型    31

3.4.3 數據類型轉換    32

3.4.4 數據類型的自動轉換    33

3.4.5 類型標識符函數    34

3.5 使用變量處理動態數據    34

3.5.1 變量聲明    34

3.5.2 PHP 超級全局變量    35

3.6 使用常量管理固定數據    38

3.7 使用表達式    38

3.7.1 操作數:表達式的輸入    38

3.7.2 操作符:表達式的行為    39

3.8 字符串插值    43

3.8.1 雙引號字符串    43

3.8.2 轉義序列    44

3.8.3 單引號字符串    44

3.8.4 花括號    45

3.8.5 heredoc    45

3.8.6 nowdoc    45

3.9 控制結構    45

3.9.1 條件語句    46

3.9.2 使用循環語句進行重復迭代   47

3.9.3 文件包含語句    51

3.10 小結    52

第4 章 函數    53

4.1 調用函數    53

4.2 創建函數    54

4.2.1 返回多個值    55

4.2.2 按值傳遞參數    55

4.2.3 參數默認值    56

4.2.4 使用類型聲明    57

4.2.5 遞歸函數    57

4.2.6 匿名函數    60

4.2.7 函數庫    60

4.3 小結    61

第5 章 數組    62

5.1 什麽是數組    62

5.2 創建數組    63

5.2.1 使用array()創建數組    64

5.2.2 使用list()提取數組    64

5.2.3 用預定義範圍的值填充數組   65

5.2.4 檢測數組    66

5.3 輸出數組    66

5.4 添加和刪除數組元素    67

5.4.1 在數組開頭添加一個值    68

5.4.2 在數組末尾添加一個值    68

5.4.3 在數組開頭刪除一個值    68

5.4.4 在數組末尾刪除一個值    68

5.5 數組元素定位    68

5.5.1 搜索數組    69

5.5.2 提取數組的鍵    70

5.5.3 提取數組的值    70

5.6 提取列    70

5.7 數組遍歷    71

5.7.1 提取數組當前的鍵    71

5.7.2 提取數組當前的值    71

5.7.3 移動數組指針    72

5.7.4 向函數傳遞數組值    72

5.8 確定數組大小和唯一性    73

5.8.1 確定函數大小    73

5.8.2 計算數組值的頻率    74

5.8.3 確定數組中的唯一值    74

5.9 數組排序    75

5.9.1 翻轉數組元素順序    75

5.9.2 鍵與值的互換    75

5.9.3 數組排序    76

5.10 數組的合並、切片、剪接和拆分    79

5.10.1 合並數組    79

5.10.2 遞歸追加數組    80

5.10.3 組合兩個數組    80

5.10.4 數組的切片    81

5.10.5 數組的剪接    81

5.10.6 計算數組交集    82

5.10.7 計算關聯數組的交集    83

5.10.8 計算數組的差    83

5.10.9 計算關聯數組的差    83

5.11 其他有用的數組函數    84

5.11.1 返回一組隨機的鍵    84

5.11.2 重排數組元素    84

5.12 小結    85

第6 章 面向對象的PHP    86

6.1 OOP 的優點    86

6.1.1 封裝    86

6.1.2 繼承    87

6.1.3 多態    87

6.2 OOP 核心概念    87

6.2.1 類    87

6.2.2 對象    88

6.2.3 屬性    88

6.2.4 常量    93

6.2.5 方法    93

6.3 構造函數與析構函數    96

6.3.1 構造函數    96

6.3.2 析構函數    98

6.4 靜態類成員    99

6.5 instanceof 關鍵字    99

6.6 輔助函數    100

6.6.1 確定一個類是否存在    100

6.6.2 確定對象上下文    100

6.6.3 獲取類的方法    100

6.6.4 獲取類的屬性    100

6.6.5 獲取已聲明的類    100

6.6.6 獲取對象屬性    101

6.6.7 確定對象的父類    101

6.6.8 確定對象類型    101

6.6.9 確定對象子類類型    101

6.6.10 確定方法是否存在    101

6.7 自動加載對象    101

6.8 trait    102

6.9 小結    102

第7 章 高級OOP 特性    103

7.1 PHP 不支持的高級OOP 特性    103

7.2 對象克隆    103

7.2.1 克隆示例    104

7.2.2 __clone()方法    105

7.3 繼承    106

7.3.1 類的繼承    106

7.3.2 繼承與構造函數    108

7.3.3 繼承與延遲靜態綁定    109

7.4 接口    110

7.4.1 實現單個接口    111

7.4.2 實現多個接口    112

7.4.3 確定接口是否存在    112

7.5 抽象類    112

7.6 命名空間    114

7.7 小結    116

第8 章 錯誤與異常處理    117

8.1 所有問題都是因你而生    117

8.2 配置PHP 錯誤報告    118

8.2.1 設置錯誤報告等級    118

8.2.2 在瀏覽器上顯示錯誤信息    119

8.2.3 錯誤日誌    119

8.2.4 創建和記錄自定義消息    120

8.3 異常處理    120

8.4 PHP 異常處理功能    121

8.4.1 擴展基礎異常類    121

8.4.2 默認構造函數    122

8.4.3 引入finally 代碼塊    122

8.4.4 擴展異常類    123

8.4.5 捕獲多個異常    123

8.4.6 標準PHP 類庫中的異常    125

8.5 PHP 7 中的錯誤處理    125

8.6 小結    126

第9 章 字符串與正則表達式    127

9.1 正則表達式    127

9.2 其他字符串專用函數    133

9.2.1 確定字符串的長度    134

9.2.2 比較兩個字符串    134

9.2.3 處理字符串大小寫    136

9.2.4 字符串與HTML 的轉換    137

9.3 正則表達式函數的替代方式   141

9.3.1 根據預定義字符對字符串進行分詞    141

9.3.2 根據預定義分隔符拆分字符串    142

9.3.3 將數組轉換為字符串    142

9.3.4 解析復雜字符串    143

9.3.5 找出字符串最後出現的位置    143

9.3.6 將所有字符串實例替換為另一個字符串    144

9.3.7 提取部分字符串    144

9.3.8 根據預定義偏移量返回部分字符串    145

9.3.9 確定字符串出現的頻率    145

9.3.10 將字符串的一部分替換為另一個字符串    146

9.3.11 填充和剝離字符串    146

9.3.12 字符與單詞計數    147

9.4 小結    149

第 10 章 處理文件與操作系統    150

10.1 瞭解文件與目錄    150

10.1.1 目錄分隔符   150

10.1.2 解析目錄路徑    150

10.1.3 計算文件、目錄和磁盤大小    152

10.1.4 確定訪問時間和修改時間    155

10.2 處理文件    156

10.2.1 資源的概念   156

10.2.2 換行符    156

10.2.3 文件結束標志    156

10.2.4 打開與關閉文件    157

10.2.5 從文件讀取    158

10.2.6 將字符串寫入文件    164

10.2.7 移動文件指針    164

10.2.8 讀取目錄內容    165

10.3 運行shell 命令    166

10.3.1 刪除目錄    166

10.3.2 重命名文件    167

10.3.3 觸摸文件    167

10.4 系統級程序執行    167

10.4.1 凈化輸入    167

10.4.2 PHP 程序執行函數    168

10.5 小結    170

第 11 章 第三方程序庫    171

11.1 PEAR 簡介    171

11.1.1 安裝PEAR    171

11.1.2 更新PEAR    172

11.2 使用PEAR 包管理器    172

11.2.1 安裝PEAR 包    172

11.2.2 自動安裝所有依賴    173

11.2.3 查看已經安裝的PEAR 包    173

11.3 Composer 介紹    173

11.3.1 安裝Composer    173

11.3.2 使用Composer    174

11.4 使用C 程序庫擴展PHP    175

11.5 小結    176

第 12 章 日期與時間    177

12.1 UNIX 時間戳    177

12.2 PHP 日期與時間庫    177

12.2.1 驗證日期    178

12.2.2 格式化日期和時間    178

12.2.3 將時間戳轉換為用戶友好的值    181

12.2.4 處理時間戳    181

12.3 日期處理    183

12.3.1 顯示本地日期與時間    183

12.3.2 顯示網頁最近的修改日期    185

12.3.3 確定當前月份的天數    186

12.3.4 確定任意給定月份的天數    186

12.3.5 計算當前日期X 天後的日期    186

12.4 日期和時間類    187

12.4.1 DateTime 構造函數    187

12.4.2 格式化日期    187

12.4.3 在實例化之後設定日期    188

12.4.4 在實例化之後設定時間    188

12.4.5 修改日期和時間    188

12.4.6 計算兩個日期之間的差    189

12.5 小結    189

第 13 章 表單    190

13.1 PHP 和Web 表單    190

13.2 驗證表單數據    192

13.2.1 文件刪除    192

13.2.2 跨站腳本    192

13.2.3 凈化用戶輸入    193

13.2.4 使用Filter 擴展檢驗和凈化數據    195

13.2.5 處理多值表單組件    197

13.3 小結    198

第 14 章 用戶身份驗證    199

14.1 HTTP 身份驗證的概念    199

14.2 使用PHP 進行用戶身份驗證    200

14.2.1 PHP 身份驗證變量    201

14.2.2 有用的函數    201

14.3 PHP 身份驗證方法    202

14.3.1 硬編碼身份驗證    202

14.3.2 基於文件的身份驗證    202

14.3.3 基於數據庫的身份驗證    204

14.4 用戶登錄管理    205

14.4.1 密碼散列    205

14.4.2 一次性URL 和密碼找回    206

14.5 使用OAuth 2.0    208

14.6 小結    209

第 15 章 處理文件上傳    210

15.1 通過HTTP 上傳文件    210

15.2 使用PHP 上傳文件    211

15.2.1 PHP 文件上傳及資源指令    211

15.2.2 $_FILES 數組    212

15.2.3 PHP 文件上傳函數    212

15.2.4 上傳中的錯誤消息    213

15.2.5 一個簡單的例子    214

15.3 小結    215

第 16 章 網絡    216

16.1 DNS、服務與服務器    216

16.1.1 DNS    216

16.1.2 服務    220

16.1.3 建立socket 連接    221

16.2 郵件    223

16.2.1 配置指令    223

16.2.2 使用PHP 腳本發送電子郵件    224

16.3 常見網絡任務    226

16.3.1 ping 一臺服務器    227

16.3.2 創建一個埠掃描程序    227

16.3.3 創建一個子網轉換程序    228

16.4 小結    229

第 17 章 會話處理    230

17.1 什麽是會話處理    230

17.2 配置指令    230

17.2.1 管理會話存儲介質    231

17.2.2 設置會話文件路徑    231

17.2.3 自動開啟會話   231

17.2.4 設置會話名稱   231

17.2.5 選擇cookie 或URL 重寫    232

17.2.6 設置會話cookie 的生命周期    232

17.2.7 設置會話cookie 的有效URL路徑    232

17.2.8 設置緩存    233

17.3 使用會話    234

17.3.1 開始一個會話   234

17.3.2 銷毀一個會話   234

17.3.3 設置和提取會話ID    234

17.3.4 創建和刪除會話變量    235

17.3.5 會話數據的編碼和解碼    236

17.4 會話處理實例    237

17.4.1 返回用戶的自動登錄    237

17.4.2 生成近期查看的文檔索引    239

17.5 創建定製的會話處理程序    240

17.5.1 將定製會話函數嵌入PHP 邏輯    241

17.5.2 使用基於MySQL 的定製會話處理程序    241

17.6 小結    243

第 18 章 Web 服務    244

18.1 為什麽要使用Web 服務    244

18.2 從API 開始    244

18.3 API 安全性    248

18.4 創建API   249

18.5 小結    253

第 19 章 PHP 安全編程    254

19.1 PHP 安全配置    254

19.2 隱藏配置的詳細信息    256

19.2.1 隱藏Apache    256

19.2.2 隱藏PHP    257

19.3 隱藏敏感信息    257

19.3.1 隱藏文檔根目錄    258

19.3.2 拒絕訪問帶有某種擴展名的文件    258

19.4 數據加密    258

19.4.1 PHP 加密函數   258

19.4.2 使用OpenSSL 加密數據    261

19.5 小結    263

第 20 章 PHP 與jQuery 的集成    264

20.1 Ajax 簡介    264

20.2 jQuery 簡介    265

20.2.1 安裝jQuery    265

20.2.2 一個簡單的例子    265

20.2.3 對事件做出響應    266

20.2.4 jQuery 和DOM    267

20.3 創建用戶名存在性檢驗器    269

20.4 小結    272

第 21 章 MVC 與框架    273

21.1 MVC 簡介    273

21.2 PHP 框架解決方案    274

21.2.1 CakePHP 框架    275

21.2.2 Symfony 框架    275

21.2.3 Zend 框架    275

21.2.4 Phalcon 框架    275

21.2.5 Laravel 框架    276

21.2.6 PHP 框架協作組織(PHP-FIG)    280

21.2.7 PSR-1 和PSR-2 編碼規範    280

21.2.8 PSR-4 自動加載    281

21.3 小結    281

第 22 章 MySQL 簡介    282

22.1 MySQL 為何如此流行    282

22.1.1 靈活性    282

22.1.2 能力    283

22.1.3 靈活的許可證選項    284

22.2 著名的MySQL 用戶    284

22.2.1 Craigslist    284

22.2.2 Twitter    284

22.2.3 GitHub    284

22.2.4 其他著名用戶    284

22.3 MariaDB:MySQL 的一種替代方案    285

22.4 小結    285

第 23 章 安裝與配置MySQL    286

23.1 下載MySQL    286

23.2 安裝MySQL    286

23.2.1 在Linux 上安裝MySQL    287

23.2.2 在Windows 上安裝與配置MySQL   289

23.3 啟動與停止MySQL    290

23.4 配置與優化MySQL    291

23.4.1 mysqld_safe 包裝器    291

23.4.2 MySQL 配置與優化參數    291

23.4.3 my.cnf 文件    294

23.5 配置PHP 與MySQL 一起工作    296

23.5.1 在Linux 上重新配置PHP    296

23.5.2 在Windows 上重新配置PHP    296

23.6 小結    296

第 24 章 MySQL 客戶端程序    297

24.1 命令行工具簡介    297

24.1.1 mysql 客戶端程序    297

24.1.2 mysqladmin 客戶端程序    304

24.1.3 其他有用的客戶端程序    305

24.2 有用的GUI 客戶端程序    307

24.3 phpMyAdmin    307

24.4 小結    308

第 25 章 MySQL 存儲引擎和數據類型    309

25.1 存儲引擎    309

25.1.1 InnoDB    310

25.1.2 MyISAM    310

25.1.3 MEMORY    311

25.1.4 MERGE    312

25.1.5 FEDERATED    312

25.1.6 ARCHIVE    313

25.1.7 CSV    313

25.1.8 EXAMPLE    313

25.1.9 BLACKHOLE    314

25.1.10 存儲引擎FAQ    314

25.2 數據類型和屬性    315

25.2.1 數據類型    315

25.2.2 數據類型屬性    319

25.3 處理數據庫和表    321

25.3.1 處理數據庫    321

25.3.2 處理數據表    322

25.3.3 修改表結構    324

25.3.4 INFORMATION_SCHEMA    325

25.4 小結    327

第 26 章 MySQL 安全性    328

26.1 首先要做的事情    328

26.2 mysqld 守護進程的安全性    329

26.3 MySQL 訪問權限系統    330

26.3.1 權限系統的工作原理    330

26.3.2 訪問控制信息保存的位置    331

26.4 用戶與權限管理    334

26.4.1 創建用戶    334

26.4.2 刪除用戶    335

26.4.3 重命名用戶    335

26.4.4 grant 和revoke 命令    335

26.4.5 查看權限    339

26.5 限制用戶資源    339

26.6 安全的MySQL 連接    340

26.6.1 授權選項    340

26.6.2 SSL 選項    341

26.6.3 啟動MySQL 服務器並啟用SSL    342

26.6.4 啟用客戶端SSL 連接    342

26.6.5 保存SSL 選項到my.cnf 文件    342

26.7 小結    342

第 27 章 PHP 與MySQL    343

27.1 安裝的前提條件    344

27.1.1 在Linux/UNIX 上啟用mysqli    344

27.1.2 在Windows 上啟用mysqli    344

27.1.3 使用MySQL Native Driver    344

27.1.4 管理用戶權限   344

27.1.5 樣本數據    345

27.2 使用mysqli 擴展    345

27.2.1 建立與斷開連接    345

27.2.2 處理連接錯誤   346

27.2.3 提取錯誤信息   346

27.2.4 保存連接信息到單獨的文件中    347

27.2.5 保證連接信息的安全性    348

27.3 與數據庫交互    348

27.3.1 發送查詢到數據庫    348

27.3.2 解析查詢結果   350

27.3.3 確定選取和影響的行    351

27.3.4 使用預處理語句    352

27.4 執行數據庫事務    356

27.4.1 開啟自動提交模式    356

27.4.2 提交事務    356

27.4.3 回滾事務    356

27.5 小結    357

第 28 章 PDO 介紹    358

28.1 另一種數據庫抽象層嗎    358

28.2 使用PDO    359

28.2.1 安裝PDO    360

28.2.2 連接到數據庫服務器並選擇數據庫    360

28.2.3 處理錯誤    362

28.2.4 獲取和設置屬性    363

28.2.5 執行查詢    364

28.2.6 預處理語句介紹    365

28.2.7 提取數據    368

28.2.8 設置綁定列    370

28.2.9 處理事務    371

28.3 小結    372

第 29 章 存儲例程    373

29.1 你應該使用存儲例程嗎    373

29.1.1 存儲例程的優點    373

29.1.2 存儲例程的缺點    373

29.2 MySQL 如何實現存儲例程    374

29.2.1 創建一個存儲例程    374

29.2.2 聲明和設置變量    376

29.2.3 執行存儲例程    377

29.2.4 創建並使用多語句存儲例程    377

29.2.5 在一個存儲例程中調用另一個存儲例程    383

29.2.6 修改存儲例程    384

29.2.7 刪除存儲例程    384

29.2.8 查看存儲例程的狀態    384

29.2.9 查看存儲例程的創建語法    385

29.2.10 條件處理    386

29.3 在Web 應用中集成存儲例程    386

29.3.1 創建雇員獎金接口    386

29.3.2 提取多個行   387

29.4 小結    388

第30 章 MySQL 觸發器    389

30.1 觸發器介紹    389

30.1.1 為什麽使用觸發器    389

30.1.2 在事件之前採取行動    390

30.1.3 在事件之後採取行動    390

30.1.4 before 觸發器與after 觸發器    391

30.2 MySQL 觸發器支持    391

30.2.1 創建觸發器   391

30.2.2 查看已有的觸發器    392

30.2.3 修改觸發器   394

30.2.4 刪除觸發器   394

30.3 集成觸發器到Web 應用    395

30.4 小結    396

第31 章 MySQL 視圖    397

31.1 視圖介紹    397

31.2 MySQL 對視圖的支持    398

31.2.1 創建並運行視圖    398

31.2.2 查看視圖信息    402

31.2.3 修改視圖    404

31.2.4 刪除視圖    404

31.2.5 更新視圖    404

31.3 集成視圖到Web 應用    405

31.4 小結    406

第32 章 實用數據庫查詢    407

32.1 樣本數據    407

32.2 創建表格化輸出    407

32.2.1 安裝HTML_Table    408

32.2.2 創建簡單表格    408

32.2.3 創建可讀性更好的行輸出    409

32.2.4 根據數據庫數據創建表格    410

32.3 輸出排序    411

32.4 創建分頁輸出    412

32.5 列出頁碼    414

32.6 使用子查詢查詢多個表    415

32.6.1 使用子查詢進行比較    416

32.6.2 使用子查詢確定存在性    416

32.6.3 使用子查詢進行數據庫維護    417

32.6.4 在PHP 中使用子查詢    417

32.7 使用光標迭代結果集合    418

32.7.1 光標的基礎知識    418

32.7.2 創建光標    418

32.7.3 打開光標    418

32.7.4 使用光標    419

32.7.5 關閉光標    419

32.7.6 在PHP 中使用光標    420

32.8 小結    420

第33 章 索引與搜索    421

33.1 數據庫索引    421

33.1.1 主鍵索引    421

33.1.2 唯一索引    422

33.1.3 普通索引    423

33.1.4 全文索引    424

33.1.5 索引最佳實踐    427

33.2 基於表單的搜索    427

33.2.1 執行簡單搜索    428

33.2.2 擴展搜索功能    429

33.2.3 執行全文搜索    430

33.3 小結    431

第34 章 事務    432

34.1 什麽是事務    432

34.2 MySQL 事務功能    432

34.2.1 系統要求    432

34.2.2 表格創建    433

34.3 一個示例項目    433

34.3.1 創建表格並添加樣本數據    434

34.3.2 執行示例事務    434

34.3.3 使用建議    436

34.4 使用PHP 創建事務型應用    436

34.5 小結    437

第35 章 導入與導出數據    438

35.1 樣本表格    438

35.2 使用數據分隔    438

35.3 導入數據    439

35.3.1 使用LOAD DATA INFILE 導入數據    439

35.3.2 使用mysqlimport 導入數據    441

35.3.3 使用PHP 加載表數據    443

35.4 導出數據    444

35.5 小結    446