![PHP and MySQL by Example](http://img.images-bn.com/static/redesign/srcs/images/grey-box.png?v11.11.4)
- ISBN-10:
- 0131875086
- ISBN-13:
- 9780131875081
- Pub. Date:
- 12/06/2006
- Publisher:
- Prentice Hall
- ISBN-10:
- 0131875086
- ISBN-13:
- 9780131875081
- Pub. Date:
- 12/06/2006
- Publisher:
- Prentice Hall
![PHP and MySQL by Example](http://img.images-bn.com/static/redesign/srcs/images/grey-box.png?v11.11.4)
Buy New
$54.99Buy Used
$14.64![Powered by Textbook.com Logo](http://img.images-bn.com/static/redesign/srcs/images/PoweredByTB_Logo_2x.png)
-
SHIP THIS ITEM— This item is available online through Marketplace sellers.
-
PICK UP IN STORECheck Availability at Nearby Stores
Available within 2 business hours
This item is available online through Marketplace sellers.
-
SHIP THIS ITEM
Temporarily Out of Stock Online
Please check back later for updated availability.
This item is available online through Marketplace sellers.
Overview
Quickly master dynamic, database-driven Web development—no experience necessary!
Even if you’re completely new to PHP, MySQL, and Web database development, this book will guide you through every step of building powerful, database-driven, dynamic Web sites. Direct from the world’s top scripting instructor, Ellie Quigley, PHP and MySQL by Example illuminates every concept with tested code examples, screen shots showing program output, and clear, line-by-line explanations.
Classroom-tested in Ellie Quigley’s Silicon Valley training courses and at Marko Gargenta’s Marakana training company in San Francisco, this book takes you from the simplest PHP scripting and SQL querying techniques all the way to dynamic, database driven Web site construction with PHP and MySQL. From simple fill-in forms to program security and debugging, it’s the only PHP/MySQL book you’ll ever need!
This book covers
- Complete PHP fundamentals, including operators, strings, conditionals, loops, arrays, functions, and more
- PHP QuickStart for more advanced readers—makes you productive with PHP in the space of just fifteen book pages
- Essential Web development techniques, from file handling to validating user input with regular expressions
- Powerful PHP features, including user-defined functions and self-processing PHP Forms
- Day-to-day MySQL administration
- A complete SQL tutorial for creating queries, retrieving data, and writing data with MySQL
- Session management and cookies
- Object Oriented PHP
- Best practices for using PHP and MySQL together
Nearly 100,000 professionals and power users have relied on Ellie Quigley’s books to master scripting languages. With PHP and MySQL by Example, you can, too. And once you’ve become an expert, you’ll turn to this book constantly as your go-to source for reliable answers, solutions, and code.
About the CD-ROM
The CD-ROM contains versions of PHP and MySQL for Windows and UNIX/Linux, plus a comprehensive code library for creating your own sites and database-enabled Web applications, including this book’s powerful Art Gallery case study application.
Lab Solutions
Solutions to the end-of-chapter labs are available at www.prenhallprofessional.com/title/0131875086.
Product Details
ISBN-13: | 9780131875081 |
---|---|
Publisher: | Prentice Hall |
Publication date: | 12/06/2006 |
Pages: | 878 |
Product dimensions: | 7.00(w) x 9.10(h) x 1.70(d) |
About the Author
Ellie Quigley has taught scripting languages in Silicon Valley for more than twenty years. Her Perl and shell programming classes at the University of Santa Cruz Extension program have become part of Silicon Valley lore. Her best-selling books include UNIX ® Shells by Example, Fourth Edition; Perl by Example, Third Edition; and Javascript by Example, all from Prentice Hall.
Marko Gargenta has worked as an e-commerce consultant and instructor since 1996. He has created the Marakana Ecommerce Seminar Series, consulted with Sun Microsystems Educational Services, and designed and delivered PHP and MySQL courses for OpNet Community Ventures and AcademyX. For more on Marko’s training company go to http://marakana.com.
Read an Excerpt
Over the past few years, students taking my Perl/CGI course continued to ask me when I would be graduating from CGI to PHP, and whether I would offer a course or write a PHP “by Example” book. I didn’t really take the idea of a book seriously until attending a PHP/MySQL class here in San Francisco a few years ago, where I met Marko Gargenta, who was the teacher of that class and the inspiration for this book. We had lunch together and I mentioned to him that the girl sitting next to me in the class was a Web designer, with little programming experience. She was concerned that she couldn’t keep up with the class and wondered if I knew where she could find a book that explained PHP for designers, not just programmers. Marko had heard similar concerns from his students. We talked about how to address this issue, and from that conversation, the seeds were sown for PHP and MySQL by Example.
Although, theoretically, the Web designer/developer should need no PHP programming experience to change the content of a page, and the programmer should be concerned only with the logic, such as calculations, sending data to a database, and so on, they do not always work in isolation. For example, suppose a page is designed so that when the user enters bank information in an HTML form, a PHP program, after doing some calculations, finds that there are insufficient funds, and sends back an error in a bold red font. In such a case, PHP and HTML are integrated—one to calculate and produce the error message, the other to display it in a bold red font. Keeping the design and program logic separated may be the goal, but it is often impossible with the complexities of today’s Web development.
And then there is the issue of the database management system. Where does the processed data get stored? Who designs the database and its tables? Who administers it? How does the information get from the Web page, to the PHP program, and then to the database? Enter MySQL. Is this yet another world in isolation?
Since my first meeting with Marko, I was challenged to bring these technologies together. When Prentice Hall agreed to publish our book, the learning curve was steep, and after the initial draft was done, I began teaching “An Introduction to PHP and MySQL Programming” from the PDF version of that first draft. I noticed that more Web designers were signing up than programmers, and they came in with trepidation that it would be way over their heads. But with the real-world examples and labs we provided, they started to enjoy feelings of success on the first morning. It was wonderful to witness both designers and programmers sharing their experiences without the artificial boundary that has kept them isolated from each other in the workplace.
The mission of PHP and MySQL by Example is to create a gentle yet thorough introduction to the shared power of PHP and MySQL, to make static HTML pages dynamic. The labs and exercises have been tested by myself, Marko, and our students. I think you will find this “by Example” book a helpful and complete guide, no matter what side of the Web site you support, or even if you are just starting your own.
Acknowledgments
Many people helped with the creation of this book. I’d like to thank Mark L. Taub, my longtime editor at Prentice Hall; Vanessa Moore, the most gifted compositor on the planet; and Julie Nahil, a great production editor. Matthew Leingang, Sander van Zoest, David Mercer, and Jason Wertz provided extremely helpful manuscript reviews. Any remaining mistakes are my own.
I’d also like to thank the students in my classes who provided valuable input for the labs. These include Rita McCue, Sanjay Shahri, Ryan Belcher, Debra Anderson, and Catherine Nguyen.
The fantastic illustrations in the book were created by Elizabeth Staechelin and Daniel Staechelin. And many thanks to the artists who provided artwork for the art gallery example. They are Elliott Easterling, Laura Blair, Stuart Sheldon, and Todd Brown.
Errata and solutions to the labs can be found on the book’s Web site at www.prenhallprofessional.com/title/0131875086. The Northwind database script, used in the chapters, can be found at http://marakana.com/download/sql/northwind.sql.
Ellie Quigley San Francisco, California September 2006
Table of Contents
Preface xxiii
Acknowledgments xxiv
Chapter 1: Introduction 1
1.1 From Static to Dynamic Web Sites 1
1.2 About PHP 4
1.3 About MySQL 7
1.4 Chapter Summary 11
Chapter 2: Getting Started 13
2.1 The Life Cycle of a Web Page 13
2.2 The Anatomy of a PHP Script 15
2.3 Some Things to Consider 21
2.4 Review 31
2.5 Chapter Summary 37
Chapter 2 Lab 38
Chapter 3: PHP Quick Start 41
3.1 Quick Start, Quick Reference 41
3.2 Chapter Summary 57
Chapter 4: The Building Blocks: Data Types, Literals, Variables, and Constants 59
4.1 Data Types 59
4.2 Variables 70
4.3 Constants 99
4.4 Chapter Summary 104
Chapter 4 Lab 105
Chapter 5: Operators 107
5.1 About PHP Operators and Expressions 107
5.2 Chapter Summary 145
Chapter 5 Lab 146
Chapter 6: Strings 149
6.1 What Is a String? 149
6.2 String Functions 155
6.3 Other String Functions 214
6.4 Chapter Summary 218
Chapter 6 Lab 219
Chapter 7: Conditionals and Loops 221
7.1 Control Structures, Blocks, and Compound Statements 221
7.2 Loops 232
7.3 Chapter Summary 243
Chapter 7 Lab 244
Chapter 8: Arrays 247
8.1 What Is an Array? 247
8.2 Modifying Arrays (Unsetting, Deleting, Adding, and Changing Elements) 310
8.3 Chapter Summary 335
Chapter 8 Lab 336
Chapter 9: User-Defined Functions 337
9.1 What Is a Function? 337
9.2 Chapter Summary 376
Chapter 9 Lab 377
Chapter 10: More on PHP Forms 379
10.1 Introduction 379
10.2 Review of HTML Forms 379
10.3 PHP and Forms 390
10.4 Chapter Summary 438
Chapter 10 Lab 439
Chapter 11: Files and Directories 441
11.1 Files 441
11.2 The Web Server, PHP, and Permissions 446
11.3 Directories 483
11.4 Managing Content with Include Files 487
11.5 Chapter Summary 494
Chapter 12: Regular Expressions and Pattern Matching 497
12.1 What Is a Regular Expression? 497
12.2 Pattern-Matching Functions 499
12.3 Chapter Summary 565
Chapter 12 Lab 566
Chapter 13: Introduction to MySQL 567
13.1 About Databases 567
13.2 The Anatomy of a Relational Database 570
13.3 Connecting to the Database 575
13.4 The MySQL Privilege System 582
13.5 Chapter Summary 593
Chapter 14: SQL Language Tutorial 595
14.1 What Is SQL? 595
14.2 SQL Data Manipulation Language (DML) 603
14.3 SQL Data Definition Language 620
14.4 SQL Functions 633
14.5 Chapter Summary 642
Chapter 14 Lab 643
Chapter 15: PHP and MySQL Integration 647
15.1 Introduction 647
15.2 The Guest Book Example 663
15.3 Chapter Summary 671
Chapter 15 Lab 671
Chapter 16: Cookies and Sessions 673
16.1 What Is Stateless? 673
16.2 What Are Cookies? 673
16.3 PHP and Cookies 677
16.4 What Is a Session? 694
16.5 Chapter Summary 736
Chapter 16 Lab 738
Chapter 17: Objects 739
17.1 What Are Objects? 739
17.2 Working with Classes 741
17.3 Some PHP 5 Object Features 772
17.4 Chapter Summary 780
Chapter 17 Lab 781
Appendix A: Building an Art Gallery 783
A.1 Project Overview 783
A.2 The Public and the Private 783
A.3 Creating the Web Site 785
A.4 Installing the Art Gallery 805
A.5 Conclusion 808
Appendix B: PHP and E-Mail 809
B.1 The Mail Server 809
B.2 MIME (Multipurpose Internet Mail Extensions) 810
B.3 Runtime Configuration Options 810
B.4 The mail() Function 811
B.5 Sending a Simple E-Mail Message 811
B.6 Example: Sending an HTML Message 813
Appendix C: PHP and Date/Time 819
C.1 Formatting Dates and Times 819
C.2 Getting the Timestamp 824
C.3 Getting the Date and Time 829
Appendix D: Security and Debugging 833
D.1 About Security 833
D.2 Securing PHP and MySQL 834
D.3 Debugging 841
Appendix E: Installation Procedures 849
E.1 About Web Servers 849
E.2 Installing Apache on Windows 849
E.3 Installing PHP on Windows 850
E.4 Installing PHP on Linux/UNIX 851
E.5 Installing PHP on Mac OS X 851
E.6 Configuring Apache to use PHP Module (All Platforms) 851
E.7 Configuring php.ini (All Platforms) 853
E.8 Installing MySQL on Windows 854
E.9 Installing MySQL on Linux/UNIX 854
E.10 Installing MySQL on Mac OS X 854
E.11 Read the Manual 854
Index 855
Preface
Over the past few years, students taking my Perl/CGI course continued to ask me when I would be graduating from CGI to PHP, and whether I would offer a course or write a PHP “by Example” book. I didn’t really take the idea of a book seriously until attending a PHP/MySQL class here in San Francisco a few years ago, where I met Marko Gargenta, who was the teacher of that class and the inspiration for this book. We had lunch together and I mentioned to him that the girl sitting next to me in the class was a Web designer, with little programming experience. She was concerned that she couldn’t keep up with the class and wondered if I knew where she could find a book that explained PHP for designers, not just programmers. Marko had heard similar concerns from his students. We talked about how to address this issue, and from that conversation, the seeds were sown for PHP and MySQL by Example.
Although, theoretically, the Web designer/developer should need no PHP programming experience to change the content of a page, and the programmer should be concerned only with the logic, such as calculations, sending data to a database, and so on, they do not always work in isolation. For example, suppose a page is designed so that when the user enters bank information in an HTML form, a PHP program, after doing some calculations, finds that there are insufficient funds, and sends back an error in a bold red font. In such a case, PHP and HTML are integrated—one to calculate and produce the error message, the other to display it in a bold red font. Keeping the design and program logic separated may be the goal, but it is often impossible with the complexities of today’s Web development.
And then there is the issue of the database management system. Where does the processed data get stored? Who designs the database and its tables? Who administers it? How does the information get from the Web page, to the PHP program, and then to the database? Enter MySQL. Is this yet another world in isolation?
Since my first meeting with Marko, I was challenged to bring these technologies together. When Prentice Hall agreed to publish our book, the learning curve was steep, and after the initial draft was done, I began teaching “An Introduction to PHP and MySQL Programming” from the PDF version of that first draft. I noticed that more Web designers were signing up than programmers, and they came in with trepidation that it would be way over their heads. But with the real-world examples and labs we provided, they started to enjoy feelings of success on the first morning. It was wonderful to witness both designers and programmers sharing their experiences without the artificial boundary that has kept them isolated from each other in the workplace.
The mission of PHP and MySQL by Example is to create a gentle yet thorough introduction to the shared power of PHP and MySQL, to make static HTML pages dynamic. The labs and exercises have been tested by myself, Marko, and our students. I think you will find this “by Example” book a helpful and complete guide, no matter what side of the Web site you support, or even if you are just starting your own.
Acknowledgments
Many people helped with the creation of this book. I’d like to thank Mark L. Taub, my longtime editor at Prentice Hall; Vanessa Moore, the most gifted compositor on the planet; and Julie Nahil, a great production editor. Matthew Leingang, Sander van Zoest, David Mercer, and Jason Wertz provided extremely helpful manuscript reviews. Any remaining mistakes are my own.
I’d also like to thank the students in my classes who provided valuable input for the labs. These include Rita McCue, Sanjay Shahri, Ryan Belcher, Debra Anderson, and Catherine Nguyen.
The fantastic illustrations in the book were created by Elizabeth Staechelin and Daniel Staechelin. And many thanks to the artists who provided artwork for the art gallery example. They are Elliott Easterling, Laura Blair, Stuart Sheldon, and Todd Brown.
Errata and solutions to the labs can be found on the book’s Web site at www.prenhallprofessional.com/title/0131875086. The Northwind database script, used in the chapters, can be found at http://marakana.com/download/sql/northwind.sql.
Ellie Quigley
San Francisco, California
September 2006