Matthew Machaj's Advanced PHP with MySQL course continues from his Introduction to PHP course but is also appropriate for those already well versed in PHP. Matthew again focuses on topics relevant to developers and works on real code in text editors as well as executing MySQL commands from the command prompt. A working web application program will also be developed throughout the course to build on new concepts learned. Topics covered include reading/writing files, object-oriented programming, cookies, MySQL databases, and MySQL commands. Downloadable code and homework solutions are included so students can follow along with the lessons.
| I. Advanced PHP with MySQL |
| |
Course Introduction |
13:36 |
| | |
Intro |
0:00 | |
| | |
Advanced PHP w/ MySQL |
0:13 | |
| | |
| Course Introduction |
0:14 | |
| | |
| Course Content |
0:59 | |
| | |
Web Application: Educator Store |
1:45 | |
| | |
| Web Application: Educator Store |
1:46 | |
| | |
Object-Oriented Programming |
6:09 | |
| | |
| Object-Oriented Programming Overview |
6:10 | |
| | |
MySQL |
6:50 | |
| | |
| MySQL Overview |
6:51 | |
| | |
| Example: Command Prompt & MySQL |
8:34 | |
| | |
What You Will Learn |
9:34 | |
| | |
| What You Will Learn |
9:35 | |
| | |
Course Prerequisites |
11:52 | |
| | |
| Course Prerequisites |
11:53 | |
| |
Advanced Course Development Environment |
18:46 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:11 | |
| | |
| Lesson Overview |
0:12 | |
| | |
Development Environment Setup |
1:36 | |
| | |
| Firefox Web Browser, XAMPP, and PSPad Text Editor |
1:37 | |
| | |
Course Directory Structure |
4:36 | |
| | |
| Course Directory Structure |
4:37 | |
| | |
phpDocumentor |
7:23 | |
| | |
| phpDocumentor Overview |
7:24 | |
| | |
| Parsing Source Code |
7:44 | |
| | |
| docs Subdirectory |
9:06 | |
| | |
| Asvanced PHP Course Documentation Example |
10:21 | |
| | |
Previous Educator PHP Students |
14:14 | |
| | |
| Lib Directory Changes |
14:38 | |
| | |
| Images Directory Changes |
14:57 | |
| | |
| VERSION Constant |
15:40 | |
| | |
| Comments Noting a Specific Version Number |
17:04 | |
| | |
Homework Challenge |
17:30 | |
| | |
| Homework Challenge |
17:31 | |
| |
Introduction to File I/O |
35:37 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:10 | |
| | |
| Lesson Overview |
0:11 | |
| | |
File I/O |
1:34 | |
| | |
| File I/O Overview |
1:35 | |
| | |
| Performing file I/O: 3 Steps |
1:52 | |
| | |
File Permissions |
2:28 | |
| | |
| Read Permission & Write Permission |
2:29 | |
| | |
fopen() |
4:47 | |
| | |
| fopen() |
4:48 | |
| | |
| Two Required Parameters |
5:01 | |
| | |
| Successful fopen(): File Handle and Resource |
5:21 | |
| | |
| FALSE and E_WARNING Error |
6:00 | |
| | |
| Example |
6:39 | |
| | |
File Paths |
7:10 | |
| | |
| File Paths |
7:11 | |
| | |
File Access Modes |
9:18 | |
| | |
| File Access Modes |
9:19 | |
| | |
Coding Example: fopen() |
10:31 | |
| | |
| Using Relative and Absolute Path & Non-Existent File |
10:32 | |
| | |
File Pointers |
15:55 | |
| | |
| File Pointers |
15:56 | |
| | |
| Example File |
16:11 | |
| | |
| Opening a File with fopen() Using 'r' as the Access Mode |
16:22 | |
| | |
fgets() |
17:55 | |
| | |
| fgets() Overview |
17:56 | |
| | |
| Coding Example: fgets() - Reading a Line at a Time |
18:26 | |
| | |
feof() |
20:10 | |
| | |
| feof() Overview |
20:09 | |
| | |
| Coding Example: feof() |
20:50 | |
| | |
fclose() |
23:43 | |
| | |
| fclose() Overview |
23:44 | |
| | |
| Coding Example: fclose() |
25:02 | |
| | |
Coding Example: Current Stock |
26:10 | |
| | |
| Coding Example: Current Stock |
26:11 | |
| | |
trim () |
31:39 | |
| | |
| trim () Overview and Example |
31:40 | |
| | |
Homework Challenge |
33:35 | |
| | |
| Homework Challenge |
33:36 | |
| |
Web Application Development |
36:36 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:16 | |
| | |
| Lesson Overview |
0:17 | |
| | |
Version 1.0 Changelog |
0:31 | |
| | |
| catalog.php |
0:32 | |
| | |
| Function Library: fileLIB.php |
5:00 | |
| | |
Version 1.1 Changelog |
27:12 | |
| | |
| createItemDataArray() and createDeptDataArray() |
27:13 | |
| | |
| outputSimpleItemLink() and outputSimpleDeptLink() |
32:06 | |
| |
HTTP & the POST Method |
34:36 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:10 | |
| | |
| Lesson Overview |
0:11 | |
| | |
HTTP Model |
1:28 | |
| | |
| HTTP Model |
1:29 | |
| | |
| Client-Server Model 2 Steps Process |
2:00 | |
| | |
HTTP Messages |
2:23 | |
| | |
| HTTP Messages |
2:24 | |
| | |
HTTP Requests |
3:09 | |
| | |
| HTTP Requests |
3:10 | |
| | |
| Example: HTTP Request Header |
3:17 | |
| | |
| Coding Example: HTTP Requests |
4:29 | |
| | |
HTTP Responses |
7:15 | |
| | |
| HTTP Responses |
7:16 | |
| | |
| Example: HTTP Response (Header & Body) |
8:00 | |
| | |
header() |
11:47 | |
| | |
| header() Overview |
11:48 | |
| | |
| Coding Example: header |
14:02 | |
| | |
| Coding Example: header() Error |
14:52 | |
| | |
GET Method |
18:55 | |
| | |
| GET Method |
18:56 | |
| | |
| Coding Example: GET Method |
20:13 | |
| | |
POST Method |
21:09 | |
| | |
| POST Method |
21:10 | |
| | |
| Coding Example: Sample Form Using the POST Method |
23:50 | |
| | |
Accessing POST Data in PHP |
26:38 | |
| | |
| Accessing POST Data in PHP |
26:39 | |
| | |
| Coding Example: Accessing POST Data via $_POST |
28:15 | |
| | |
GET vs. POST |
29:54 | |
| | |
| GET vs. POST |
29:55 | |
| | |
Example: Accessing POST Data via $_POST |
31:20 | |
| | |
| Example: Accessing POST Data via $_POST |
31:21 | |
| | |
Homework Challenge |
33:00 | |
| | |
| Homework Challenge |
33:01 | |
| |
Web Application Development |
14:11 |
| | |
Intro |
0:00 | |
| | |
Version 2.0 Changelog |
0:09 | |
| | |
| Updating the Site's Current Form to Use the POST Method |
0:10 | |
| | |
| Creating Admin Website |
2:55 | |
| | |
| Dynamically Generated Department List |
12:40 | |
| |
Writing to Files |
17:38 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:09 | |
| | |
| Lesson Overview |
0:10 | |
| | |
Review of File I/O |
0:40 | |
| | |
| Review of File I/O |
0:41 | |
| | |
fwrite() |
1:38 | |
| | |
| fwrite() |
1:39 | |
| | |
| fputs() |
2:20 | |
| | |
| 'r+' |
2:31 | |
| | |
| Coding Example: fwrite() |
2:59 | |
| | |
fopen() Access Modes |
8:41 | |
| | |
| 'a' and 'a+' |
8:42 | |
| | |
| 'w' and 'w+' |
11:34 | |
| | |
Homework Challenge |
14:47 | |
| | |
| Homework Challenge |
14:48 | |
| |
Web Application Development |
28:14 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:08 | |
| | |
| Lesson Overview |
0:09 | |
| | |
Updated Open File Functions |
0:19 | |
| | |
| openItemsDataFile ( ), openDeptsDataFile ( ), and openLastAddedFile ( ) |
0:20 | |
| | |
insertItem() |
6:25 | |
| | |
| insertItem() Overview |
6:26 | |
| | |
| Functions: createItemDataString ( ) and updateLastItemAdded ( ) |
7:07 | |
| | |
addItemToDepartment () |
16:03 | |
| | |
| addItemToDepartment () Overview |
16:04 | |
| | |
| Functions: createDeptDataString ( ) and updateDepartment ( ) |
17:55 | |
| |
HTTP POST: File Uploads |
22:51 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:10 | |
| | |
| Lesson Overview |
0:11 | |
| | |
POST Data Encoding |
1:13 | |
| | |
| POST Data Encoding |
1:14 | |
| | |
| When Data is Included in the Body of the HTTP POST Request and is of the Content Type |
1:31 | |
| | |
| When Uploading Files Using HTTP POST |
3:17 | |
| | |
Uploading Files |
6:22 | |
| | |
| Uploading Files |
6:23 | |
| | |
| If Encoding Type is Not Set to Multipart/Formdata |
9:27 | |
| | |
$_FILES Superglobal |
10:59 | |
| | |
| $_FILES Superglobal |
11:00 | |
| | |
Structure of $_FILES |
12:15 | |
| | |
| Structure of $_FILES: Name, Type, tmp_name, Error, and Size |
12:16 | |
| | |
| Coding Example: $_FILES Superglobal |
13:34 | |
| | |
Moving an Uploaded File |
15:39 | |
| | |
| Introduction to Moving an Uploaded File |
15:40 | |
| | |
| move_uploaded_file ( ): Definition and Example |
16:40 | |
| | |
Homework Challenge |
21:19 | |
| | |
| Homework Challenge |
21:20 | |
| |
Web Application Development |
15:30 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:09 | |
| | |
| Lesson Overview |
0:10 | |
| | |
Uploading Item Image File |
1:22 | |
| | |
| Uploading Item Image File |
1:23 | |
| | |
Uploading Item Image File (cont.) |
2:43 | |
| | |
| Altering insertItem ( ) |
2:44 | |
| | |
| Helpfer Functions: getFileExtension ( ) and moveUploadedFile ( ) |
4:30 | |
| | |
| isValidItem ( ) |
13:03 | |
| |
Introduction to Object-Oriented Programming |
32:44 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:11 | |
| | |
| Lesson Overview |
0:12 | |
| | |
Object-Oriented Programming |
0:56 | |
| | |
| Introduction to Object-Oriented Programming |
0:57 | |
| | |
Associative Arrays |
5:27 | |
| | |
| Associative Arrays |
5:28 | |
| | |
Classes |
7:27 | |
| | |
| Classes Overview |
7:28 | |
| | |
Defining Classes |
8:24 | |
| | |
| Defining Classes |
8:25 | |
| | |
| Declaring Class Properties |
9:25 | |
| | |
| Coding Example: Classes |
10:11 | |
| | |
Objects |
12:18 | |
| | |
| Objects Overview |
12:19 | |
| | |
Classes vs. Objects |
12:49 | |
| | |
| Classes vs. Objects |
12:50 | |
| | |
Instantiating Classes |
14:58 | |
| | |
| Instantiating Classes |
14:59 | |
| | |
| Coding Example: Instantiate an Item Object |
16:30 | |
| | |
Object Properties |
19:21 | |
| | |
| Access and Set an Object's Property |
19:22 | |
| | |
| Coding Example: Set & Access the Properties of an Item Object |
24:23 | |
| | |
Homework Challenge |
30:22 | |
| | |
| Homework Challenge |
30:23 | |
| |
Web Application Development |
17:47 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:11 | |
| | |
| Lesson Overview |
0:12 | |
| | |
Version 5.0 Overview |
0:50 | |
| | |
| Version 5.0 Overview and Examples |
0:51 | |
| | |
Outputting Object Properties |
12:38 | |
| | |
| Outputting Object Properties |
12:39 | |
| | |
Array Object Properties |
14:18 | |
| | |
| Access and Set Array Value |
14:19 | |
| |
Object Methods |
39:57 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:12 | |
| | |
| Lesson Overview |
0:13 | |
| | |
Object Methods |
0:52 | |
| | |
| Definition of Object Methods |
0:53 | |
| | |
Calling Object Methods |
3:25 | |
| | |
| Calling Object Methods |
3:26 | |
| | |
| Coding Example: Simple Object Methods |
4:44 | |
| | |
| Object Methods and Return Values |
7:02 | |
| | |
$this Variable |
10:06 | |
| | |
| $this Variable: Definition and Example |
10:07 | |
| | |
$this Variable (cont.) |
15:51 | |
| | |
| $this Variable (cont.) |
15:52 | |
| | |
Getters & Setters |
21:21 | |
| | |
| Getters & Setters Methods |
21:22 | |
| | |
Object Methods In Strings |
25:46 | |
| | |
| Object Methods In Strings |
25:47 | |
| | |
| Coding Example: Outputting Method Return Values in Strings |
27:41 | |
| | |
Using $this to Call Other Methods |
28:49 | |
| | |
| Using $this to Call Other Methods |
28:50 | |
| | |
Homework Challenge |
34:18 | |
| | |
| Homework Challenge: 1-3 |
34:19 | |
| | |
Homework Challenge (cont.) |
36:20 | |
| | |
| Homework Challenge: 4-6 |
36:21 | |
| | |
Homework Challenge (cont.) |
37:52 | |
| | |
| Homework Challenge: 7-10 |
37:53 | |
| |
Web Application Development |
17:30 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:11 | |
| | |
| Lesson Overview |
0:12 | |
| | |
Version 6.0 Overview |
0:40 | |
| | |
| Version 6.0 Changes & Examples |
0:41 | |
| | |
Item Methods |
0:53 | |
| | |
| Item Class Definition: getImageFilename() |
0:54 | |
| | |
| Coding Example: getImageFilename() |
1:58 | |
| | |
Department Methods |
7:33 | |
| | |
| addItem(), removeItem(), and isItemInDept() Method |
7:34 | |
| | |
| addItemtToDepartment() & buildDeptObject() Functions |
11:46 | |
| | |
| A Default Value Needed to Be Set for $items |
16:26 | |
| |
Object Constructors |
22:20 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:11 | |
| | |
| Lesson Overview |
0:12 | |
| | |
Object Constructors |
0:32 | |
| | |
| Introduction to Object Constructors |
0:33 | |
| | |
| Coding Example: Object Constructors |
1:43 | |
| | |
Defining Constructors |
3:26 | |
| | |
| Defining Constructors |
3:27 | |
| | |
| Coding Example: Constructors with No Arguments |
4:24 | |
| | |
Constructor Arguments |
8:09 | |
| | |
| Constructor Arguments |
8:10 | |
| | |
| Coding Example: Constructor Arguments |
9:49 | |
| | |
Important Notes |
16:13 | |
| | |
| Important Notes |
16:14 | |
| | |
Homework Challenge |
17:35 | |
| | |
| Homework Challenge: 1 - 4 |
17:36 | |
| | |
Homework Challenge (cont.) |
19:13 | |
| | |
| Homework Challenge: 5 - 9 |
19:14 | |
| | |
Homework Challenge (cont.) |
21:40 | |
| | |
| Homework Challenge: 10 and 11 |
21:41 | |
| |
Web Application Development |
16:19 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:11 | |
| | |
| Lesson Overview |
0:12 | |
| | |
Version 7.0 Overview |
0:39 | |
| | |
| Version 7.0 Overview |
0:40 | |
| | |
Item Constructor |
2:19 | |
| | |
| Item Constructor |
2:20 | |
| | |
Department Constructor |
7:47 | |
| | |
| Department Constructor |
7:48 | |
| | |
Customer Constructor |
12:23 | |
| | |
| Customer Constructor |
12:24 | |
| |
More Magic Methods |
53:37 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:13 | |
| | |
| Lesson Overview |
0:14 | |
| | |
Magic Methods |
1:12 | |
| | |
| Magic Methods |
1:13 | |
| | |
Destructors |
2:45 | |
| | |
| Destructors Overview |
2:46 | |
| | |
| Coding Example: Calling Destructors |
4:30 | |
| | |
| Coding Example: Object Destructor |
9:19 | |
| | |
_to String () |
16:12 | |
| | |
| _to String () Overview |
16:13 | |
| | |
| Coding Example: _to String () Magic Method |
18:10 | |
| | |
Access Modifiers |
21:23 | |
| | |
| Introduction to Access Modifiers |
21:24 | |
| | |
| Access Modifiers: Public |
21:39 | |
| | |
| Access Modifiers: Private |
22:18 | |
| | |
| Access Modifiers: Protected |
22:41 | |
| | |
| Object Properties and Methods |
23:06 | |
| | |
| Coding Example: Public Access Modifiers |
26:48 | |
| | |
| Coding Example: Private Access Modifiers |
28:30 | |
| | |
_get() |
31:37 | |
| | |
| _get() Overview |
31:38 | |
| | |
| Coding Example: _get () Magic Method |
33:30 | |
| | |
_set () |
36:23 | |
| | |
| _set () & the Magic Method |
36:24 | |
| | |
Using Getters & Setters |
44:37 | |
| | |
| Coding Example: Using Getters & Setters |
44:38 | |
| | |
Homework Challenge |
50:33 | |
| | |
| Homework Challenge: 1 - 6 |
50:34 | |
| | |
Homework Challenge (cont.) |
51:41 | |
| | |
| Homework Challenge: 7 - 12 |
51:42 | |
| |
Web Application Development |
31:12 |
| | |
Intro |
0:00 | |
| | |
Version 8.0 Review |
0:12 | |
| | |
| Version 8.0 Review |
0:13 | |
| | |
private Object Properties |
1:15 | |
| | |
| private Object Properties |
1:16 | |
| | |
| Coding Example |
2:54 | |
| | |
_toString() Methods |
6:51 | |
| | |
| _toString() Methods |
6:52 | |
| | |
| Coding Example |
8:09 | |
| | |
DataFile Class |
13:27 | |
| | |
| DataFile Class & I/O Operations |
13:28 | |
| | |
| Using DataFile Class: Instantiate a DataFile, DataFile open () Method, and DataFile close () Method |
18:09 | |
| | |
Homework Challenge |
29:35 | |
| | |
| Homework Challenge |
29:36 | |
| |
Classes vs. Objects |
37:49 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:09 | |
| | |
| Lesson Overview |
0:10 | |
| | |
Class vs. Object Review |
0:58 | |
| | |
| Class vs. Object Review |
0:59 | |
| | |
Static Properties |
2:42 | |
| | |
| Static Properties |
2:43 | |
| | |
Scope Resolution Operator (::) |
5:26 | |
| | |
| Scope Resolution Operator (::) & Static Property |
5:27 | |
| | |
| Coding Example: Accessing a Static Property Using the Scope Resolution Operator |
7:57 | |
| | |
| Coding Example: Accessing a Static Property in a Class Definition |
10:33 | |
| | |
| Coding Example: Using a Static Property as an Instance Counter |
14:18 | |
| | |
Static Methods |
18:51 | |
| | |
| Static Methods Overview |
18:52 | |
| | |
| Coding Example: Static Methods |
21:39 | |
| | |
Classes vs. Objects |
26:28 | |
| | |
| Classes vs. Objects: Diagrams |
26:29 | |
| | |
Class Constants |
30:24 | |
| | |
| Class Constants Definition |
30:25 | |
| | |
| Coding Example: Using Class Constants |
31:55 | |
| | |
Homework Challenge |
34:01 | |
| | |
| Homework Challenge: 1 - 5 |
34:02 | |
| | |
Homework Challenge (cont.) |
35:25 | |
| | |
| Homework Challenge: 6 - 10 |
35:26 | |
| |
Web Application Development |
21:07 |
| | |
Intro |
0:00 | |
| | |
Version 9.0 Overview |
0:12 | |
| | |
| Version 9.0 Changes & Examples |
0:13 | |
| | |
Output Class |
1:08 | |
| | |
| Output Class & Static Methods |
1:09 | |
| | |
| outputHtmlSelector ( ) Method |
2:43 | |
| | |
| outputItemSelector ( ) Method |
4:53 | |
| | |
| outputDeptSelector ( ) Method |
6:42 | |
| | |
buildObject() Methods |
11:54 | |
| | |
| buildObject() Methods & Examples |
11:55 | |
| |
Exceptions |
22:43 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:12 | |
| | |
| Lesson Overview |
0:13 | |
| | |
try Blocks |
0:44 | |
| | |
| try Blocks Definition |
0:45 | |
| | |
catch Blocks |
2:03 | |
| | |
| catch Blocks: Definition and Syntax |
2:04 | |
| | |
| Coding Example: try/catch Blocks |
3:48 | |
| | |
| When an Exception Object is Caught & Error Handling |
5:59 | |
| | |
Exception Class |
7:02 | |
| | |
| Exception Class |
7:03 | |
| | |
| Coding Example: Using try/catch to Catch an Exception Thrown from a Method |
8:04 | |
| | |
Re-Throwing Exceptions |
16:39 | |
| | |
| Re-Throwing Exceptions |
16:40 | |
| | |
| Coding Example: Re-throwing an Exception |
17:21 | |
| | |
Homework Challenge |
20:40 | |
| | |
| Homework Challenge: 1 - 5 |
20:41 | |
| | |
Homework Challenge (cont.) |
22:17 | |
| | |
| Homework Challenge: 6 |
22:18 | |
| |
Web Application Development |
22:00 |
| | |
Intro |
0:00 | |
| | |
Version 10.0 Overview |
0:11 | |
| | |
| Updating addItem.php, addItemToDept.php, and error.php |
0:12 | |
| | |
| Updating DataFile Class: open ( ) Method & try/catch blocks |
7:45 | |
| | |
Version 10.1 Overview |
13:37 | |
| | |
| Version 10.1 Changes & Examples |
13:38 | |
| | |
| Updating DataFile Class: close ( ) Method & logWarning ( ) |
20:17 | |
| |
Cookies |
39:47 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:09 | |
| | |
| Lesson Overview |
0:10 | |
| | |
What is a Cookie? |
1:15 | |
| | |
| Definition of Cookie |
1:16 | |
| | |
HTTP - A Stateless Protocol |
2:17 | |
| | |
| HTTP - A Stateless Protocol |
2:18 | |
| | |
| Purpose of Cookies |
4:10 | |
| | |
Set - Cookie Header |
6:21 | |
| | |
| Introduction to Set - Cookie Header |
6:22 | |
| | |
| Coding Example: Set - Cookie Header |
7:38 | |
| | |
Cookie Header |
9:45 | |
| | |
| Introduction to Cookie Header |
9:46 | |
| | |
| Example: Cookie Header |
10:27 | |
| | |
setcookie() |
12:33 | |
| | |
| Introduction to setcookie() |
12:34 | |
| | |
| Example: Using setcookie |
13:54 | |
| | |
Cookies Attributes |
15:48 | |
| | |
| Cookies Attributes Overview |
15:49 | |
| | |
| Common Cookies Attributes: Domain |
16:24 | |
| | |
| Common Cookies Attributes: Path |
17:04 | |
| | |
| Common Cookies Attributes: Expires |
19:34 | |
| | |
| Coding Example: Setting Cookie Attributes |
20:58 | |
| | |
$_COOKIE Superglobal |
27:03 | |
| | |
| $_COOKIE Superglobal |
27:04 | |
| | |
| Coding Example: Accessing Cookies from PHP Using $_COOKIE |
29:45 | |
| | |
Security Implications |
34:44 | |
| | |
| Security Implications |
34:45 | |
| | |
Homework Challenge |
36:10 | |
| | |
| Homework Challenge: 1 - 4 |
36:11 | |
| | |
Homework Challenge (cont.) |
37:47 | |
| | |
| Homework Challenge: 5 - 7 |
37:48 | |
| |
Web Application Development |
39:11 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:17 | |
| | |
| Lesson Overview |
0:18 | |
| | |
instanceof Operator |
1:34 | |
| | |
| instanceof Operator |
1:35 | |
| | |
Objects with Object Properties |
2:53 | |
| | |
| Objects with Object Properties |
2:54 | |
| | |
Version 11.0 Overview |
6:41 | |
| | |
| Version 11.0 Changes: Cart and CartItem Classes |
6:42 | |
| | |
| Version 11.0 Coding Example |
10:40 | |
| | |
Version 11.1 Overview |
31:03 | |
| | |
| Version 11.1 Changes & Examples |
31:04 | |
| |
Introduction to Sessions |
46:08 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:08 | |
| | |
| Lesson Overview |
0:09 | |
| | |
What is a Session? |
0:53 | |
| | |
| What is a Session? |
0:54 | |
| | |
Client-Side Sessions |
3:51 | |
| | |
| Client-Side Sessions |
3:52 | |
| | |
Server-Side Sessions |
5:04 | |
| | |
| Server-Side Sessions |
5:05 | |
| | |
Session IDs |
6:26 | |
| | |
| Session IDs |
6:27 | |
| | |
| The SID is Used by the Server to: |
7:08 | |
| | |
| A Client Passes an SID to the Server with Each HTTP Request Via: |
8:15 | |
| | |
Sessions in PHP |
12:19 | |
| | |
| Sessions in PHP |
12:20 | |
| | |
session_start() |
14:40 | |
| | |
| session_start() Overview |
14:41 | |
| | |
| Coding Example: Using session_start () to Continue a Session |
18:03 | |
| | |
$_SESSION Superglobal |
22:06 | |
| | |
| $_SESSION Superglobal Overview |
22:07 | |
| | |
| Coding Example: Setting a Session Variable via $_SESSION |
25:22 | |
| | |
Accessing Session Data |
28:08 | |
| | |
| Accessing Session Data |
28:09 | |
| | |
Deleting Session Data |
31:43 | |
| | |
| Deleting Session Data |
31:44 | |
| | |
| Coding Example: Deleting Session Data |
32:16 | |
| | |
Configuring PHP Sessions |
36:14 | |
| | |
| session.cookie_lifetime, session.cookie_domain, and session.cookie_path |
36:15 | |
| | |
| Coding Example: Configuring PHP Sessions |
37:28 | |
| | |
Configuring PHP Sessions (cont.) |
40:56 | |
| | |
| session.use_cookies, session.use_trans_sid, and session.use_only_cookies |
40:57 | |
| | |
| Coding Example: Configuring PHP Sessions |
42:25 | |
| | |
Homework Challenge |
42:55 | |
| | |
| Homework Challenge: 1 - 5 |
42:56 | |
| | |
Homework Challenge (cont.) |
44:10 | |
| | |
| Homework Challenge: 6 - 10 |
44:11 | |
| | |
Homework Challenge (cont.) |
45:27 | |
| | |
| Homework Challenge: 11 - 13 |
45:28 | |
| |
Web Application Development |
11:00 |
| | |
Intro |
0:00 | |
| | |
Version 12.0 Overview |
0:12 | |
| | |
| Version 12.0 Changes Part I: Updating 'viewCart.php' & 'checkout.php' |
0:13 | |
| | |
| Version 12.0 Changes Part II |
5:03 | |
| |
Destroying Sessions |
29:59 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:12 | |
| | |
| Lesson Overview |
0:13 | |
| | |
Destroying Sessions |
1:02 | |
| | |
| Destroying Sessions |
1:03 | |
| | |
session_destroy() |
2:10 | |
| | |
| session_destroy() Overview |
2:11 | |
| | |
| Coding Example: Setting a Session Variable and Destroying a Session |
3:18 | |
| | |
Deleting Session Cookies |
8:38 | |
| | |
| Deleting Session Cookies |
8:39 | |
| | |
| Coding example: Deleting Session Cookies |
9:17 | |
| | |
Review of Steps |
21:07 | |
| | |
| Review of Steps |
21:08 | |
| | |
Garbage Collection |
21:50 | |
| | |
| Garbage Collection Overview |
21:51 | |
| | |
| Coding Example: Garbage Collection |
24:30 | |
| | |
Homework Challenge |
26:28 | |
| | |
| Homework Challenge: 1 - 4 |
26:29 | |
| | |
Homework Challenge (cont.) |
28:16 | |
| | |
| Homework Challenge: 5 - 9 |
28:17 | |
| |
Web Application Development |
19:14 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:13 | |
| | |
| Lesson Overview |
0:14 | |
| | |
_autoload() |
0:46 | |
| | |
| Introduction to _autoload () |
0:47 | |
| | |
Version 13.0 Overview |
4:06 | |
| | |
| _autoload () and SessionManager Class |
4:07 | |
| | |
| Updating 'viewCart.php' & 'checkout.php' |
11:16 | |
| |
Introduction to Databases |
21:24 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:16 | |
| | |
| Lesson Overview |
0:17 | |
| | |
Flat Files |
1:09 | |
| | |
| Flat Files: Definition and Example |
1:10 | |
| | |
| Problems Associated with Using Flat Files as a Database |
2:15 | |
| | |
Relational Databases |
3:29 | |
| | |
| Relational Databases |
3:30 | |
| | |
| Relational Database Management System (RDBMS) |
3:50 | |
| | |
Tables |
7:43 | |
| | |
| Tables |
7:44 | |
| | |
Columns |
9:24 | |
| | |
| Columns |
9:25 | |
| | |
What is SQL? |
10:45 | |
| | |
| Introduction to Structured Query Language |
10:46 | |
| | |
| Standard Data Types of SQL |
12:23 | |
| | |
Primary Keys |
13:19 | |
| | |
| Primary Keys |
13:20 | |
| | |
Primary Key Examples |
16:36 | |
| | |
| Primary Key Examples |
16:37 | |
| |
Introduction to MySQL |
28:11 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:11 | |
| | |
| Lesson Overview |
0:12 | |
| | |
What is MySQL? |
1:33 | |
| | |
| MySQL |
1:34 | |
| | |
MySQL Monitor |
5:16 | |
| | |
| MySQL Monitor Overview |
5:17 | |
| | |
| XAMPP & MySQL |
5:58 | |
| | |
| In the MySQL Command: hostname, username and -p |
7:05 | |
| | |
Connecting to a MySQl Server |
9:52 | |
| | |
| Connecting to a MySQl Server |
9:53 | |
| | |
Using MySQl Monitor |
13:48 | |
| | |
| Using MySQl Monitor |
13:49 | |
| | |
GRANT Command |
15:10 | |
| | |
| GRANT SQL Command |
15:11 | |
| | |
| Privileges & Objects |
18:18 | |
| | |
| Username, Hostname, and Password |
19:37 | |
| | |
| Specifying Objects |
20:05 | |
| | |
Creating a PHP User Account |
21:41 | |
| | |
| Creating a PHP User Account Overview |
21:42 | |
| | |
| Meaning of all & *.* |
23:35 | |
| | |
| Example: Creating a PHP User Account |
23:48 | |
| | |
Required Homework |
26:27 | |
| | |
| Required Homework: 1 - 5 |
26:28 | |
| | |
Required Homework (cont.) |
27:28 | |
| | |
| Required Homework: 6 |
27:29 | |
| |
Creating Databases & Tables |
23:01 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:08 | |
| | |
| Lesson Overview |
0:09 | |
| | |
Creating a Database |
1:40 | |
| | |
| Introduction to Creating a Database |
1:41 | |
| | |
| Example: Creating a Database |
3:33 | |
| | |
CREATE TABLE Command |
6:43 | |
| | |
| CREATE TABLE Command |
6:44 | |
| | |
Data Types |
7:39 | |
| | |
| Numeric Data Types: INT, INT UNSIGNED, and DECIMAL |
7:40 | |
| | |
| String Data Types: CHAR (M), VARCHAR (M), and TEXT |
9:23 | |
| | |
Colum Attributes |
11:00 | |
| | |
| PRIMARY KEY Attribute |
11:01 | |
| | |
| AUTO INCREMENT Attribute |
11:35 | |
| | |
Items Table |
13:07 | |
| | |
| Items Table |
13:08 | |
| | |
Useful Commands |
17:04 | |
| | |
| SHOW TABLES Command & DESCRIBE Utility Statement |
17:05 | |
| | |
| Example: Creating an Items Table |
17:58 | |
| | |
Required Homework |
20:51 | |
| | |
| Required Homework: 1 - 6 |
20:52 | |
| | |
Required Homework (cont.) |
21:55 | |
| | |
| Required Homework: 7 - 9 |
21:56 | |
| |
SQL Command: INSERT |
27:11 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:11 | |
| | |
| Lesson Overview |
0:12 | |
| | |
INSERT Command |
1:20 | |
| | |
| SQL INSERT Command |
1:21 | |
| | |
Specifying Values |
3:16 | |
| | |
| Columns with Numeric Data Types |
3:17 | |
| | |
| Columns with String Data Types |
3:34 | |
| | |
| Columns with AUTO INCREMENT |
4:07 | |
| | |
Inserting Items |
5:21 | |
| | |
| Inserting Items |
5:22 | |
| | |
| Example: Inserting Items |
7:03 | |
| | |
SQL Text Files |
14:04 | |
| | |
| SQL Monitor Client |
14:05 | |
| | |
| MySQL Monitor & the < Operator |
15:15 | |
| | |
| Example |
17:35 | |
| | |
Required Homework |
22:32 | |
| | |
| Required Homework: 1 - 6 |
22:33 | |
| | |
Required Homework (cont.) |
24:19 | |
| | |
| Required Homework: 7 - 10 |
24:20 | |
| |
SQL Command: SELECT |
24:57 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:10 | |
| | |
| Lesson Overview |
0:11 | |
| | |
SELECT Command |
0:42 | |
| | |
| SELECT Command: Definition and Syntax |
0:43 | |
| | |
| Results of a SELECT Query |
1:53 | |
| | |
| To Specify the Retrieval of All Columns from a Table |
3:06 | |
| | |
| Example: SELECT Command |
4:18 | |
| | |
WHERE Clause |
7:11 | |
| | |
| WHERE Clause |
7:12 | |
| | |
| A SELECT Query with WHERE Clause has the Following Syntax |
8:10 | |
| | |
| A Where Condition can Contain both Logical and Comparison Operators |
9:44 | |
| | |
Literal Values |
13:24 | |
| | |
| Literal Values |
13:25 | |
| | |
| Example: Literal Values |
14:18 | |
| | |
ORDER BY Clause |
15:31 | |
| | |
| ORDER BY Clause & SELECT Query |
15:32 | |
| | |
| Ascending and Descending Order |
17:30 | |
| | |
| An ORDER BY Clause can Specify Multiple Columns to Order the Rows by |
18:01 | |
| | |
| Example: SELECT Query with WHERE and ORDER BY Clause |
20:32 | |
| | |
Homework Challenge |
21:59 | |
| | |
| Homework Challenge |
22:00 | |
| | |
Homework Challenge (cont.) |
23:54 | |
| | |
| Homework Challenge |
23:55 | |
| |
Using PHP from MySQL |
32:43 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:10 | |
| | |
| Lesson Overview |
0:11 | |
| | |
PHP/MySQL Architecture |
0:56 | |
| | |
| PHP/MySQL Architecture |
0:57 | |
| | |
MySQLi Extension |
3:05 | |
| | |
| MySQLi Extension |
3:06 | |
| | |
Steps to Using MySQL from PHP |
5:53 | |
| | |
| Four Steps to Using MySQL from PHP |
5:54 | |
| | |
| Step # 3 |
7:18 | |
| | |
Connecting to a Database |
8:12 | |
| | |
| To Connect to a MySQL Database |
8:13 | |
| | |
| To Test for Connection Errors |
10:20 | |
| | |
Running an SQL Statement |
11:54 | |
| | |
| Running an SQL Statement |
11:55 | |
| | |
| Example |
13:30 | |
| | |
Processing the Results |
15:58 | |
| | |
| For non-SELECT Queries |
15:59 | |
| | |
| MySQLi Object Property: affected_rows |
16:19 | |
| | |
| For INSERT Statements on Tables with an AUTO_INCREMENT Column |
18:07 | |
| | |
Closing the Connection |
19:45 | |
| | |
| Closing the Connection |
19:46 | |
| | |
Coding Example |
21:24 | |
| | |
| Coding Example: Using MySQL from PHP |
21:25 | |
| | |
Homework Challenge |
29:00 | |
| | |
| Homework Challenge: 1 - 4 |
29:01 | |
| | |
Homework Challenge (cont.) |
31:10 | |
| | |
| Homework Challenge: 5 - 9 |
31:11 | |
| |
Web Application Development |
30:30 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:14 | |
| | |
| Lesson Overview |
0:15 | |
| | |
sprintf() |
1:28 | |
| | |
| sprintf() Overview |
1:29 | |
| | |
| Example |
1:56 | |
| | |
INSERT Statements with sprintf() |
5:15 | |
| | |
| INSERT Statements with sprintf() |
5:16 | |
| | |
Version 14.0 Overview |
10:00 | |
| | |
| Version 14.0 Changes & Examples Part 1 |
10:01 | |
| | |
| Version 14.0 Changes & Examples Part 2 |
21:58 | |
| |
SELECT QUERIES from PHP |
24:22 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:14 | |
| | |
| Lesson Overview |
0:15 | |
| | |
SELECT Queries |
1:21 | |
| | |
| SELECT Queries |
1:22 | |
| | |
MySQLi_Result Class |
3:17 | |
| | |
| MySQLi_Result Class: num_rows |
3:18 | |
| | |
| MySQLi_Result Class: fetch_assoc ( ) and fetch_object ( ) |
3:59 | |
| | |
fetch_assoc() |
5:17 | |
| | |
| fetch_assoc() Overview |
5:18 | |
| | |
| Coding Example: Using fetch_assoc() |
9:00 | |
| | |
stdClass Objects |
12:46 | |
| | |
| stdClass Objects |
12:47 | |
| | |
fetch_object() |
14:19 | |
| | |
| fetch_object() Overview |
14:20 | |
| | |
| Coding Example: Using fetch_object() |
16:45 | |
| | |
Freeing Result Set Memory |
18:42 | |
| | |
| Freeing Result Set Memory |
18:43 | |
| | |
| Coding Example: Using free ( ) |
20:01 | |
| | |
Homework Challenge |
22:07 | |
| | |
| Homework Challenge: 1 - 5 |
22:08 | |
| |
Web Application Development |
17:06 |
| | |
Intro |
0:00 | |
| | |
Version 15.0 Overview |
0:13 | |
| | |
| Version 15.0 Changes & Examples Part 1 |
0:14 | |
| | |
| Version 15.0 Changes & Examples Part 2 |
8:43 | |
| |
Linking Tables |
24:32 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:16 | |
| | |
| Lesson Overview |
0:17 | |
| | |
A Departments Table |
1:08 | |
| | |
| Departments Table |
1:09 | |
| | |
| How Could We Model This in a Table: Option 1 |
1:26 | |
| | |
| How Could We Model This in a Table: Option 2 |
3:12 | |
| | |
Database Normalization |
4:37 | |
| | |
| Database Normalization |
4:38 | |
| | |
Foreign Keys |
8:47 | |
| | |
| Foreign Keys |
8:48 | |
| | |
Linking Table |
11:26 | |
| | |
| Linking Table |
11:27 | |
| | |
Multiple Column Primary Keys |
15:30 | |
| | |
| Multiple Column Primary Keys |
15:31 | |
| | |
| Example |
18:51 | |
| | |
Required Homework |
22:34 | |
| | |
| Required Homework: 1 - 3 |
22:35 | |
| | |
Required Homework (cont.) |
24:10 | |
| | |
| Required Homework: 4 |
24:11 | |
| |
Web Application Development |
24:00 |
| | |
Intro |
0:00 | |
| | |
Version 16.0 Overview |
0:11 | |
| | |
| Version 16.0 Changes |
0:12 | |
| | |
| Version 16.0 Coding Examples |
4:12 | |
| | |
Version 16.0 (cont.) |
18:30 | |
| | |
| Version 16.0 Changes & Examples Part 2 |
18:31 | |
| |
SQL Command: DELETE |
10:33 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:12 | |
| | |
| Lesson Overview |
0:13 | |
| | |
DELETE Statement |
0:30 | |
| | |
| DELETE Statement & Its WHERE Clause |
0:31 | |
| | |
| Delete All Rows From a Table |
2:57 | |
| | |
Using DELETE from PHP |
4:04 | |
| | |
| Using DELETE from PHP Overview |
4:05 | |
| | |
| Coding Example: Using DELETE from PHP |
6:37 | |
| | |
Homework Challenge |
8:53 | |
| | |
| Homework Challenge: 1 - 4 |
8:54 | |
| |
Web Application Development |
16:02 |
| | |
Intro |
0:00 | |
| | |
Version 17.0 Overview |
0:11 | |
| | |
| Version 17.0 Changes |
0:12 | |
| | |
| Version 17.0 Coding Example |
2:51 | |
| | |
Transactions |
12:50 | |
| | |
| Database Transaction |
12:51 | |
| | |
| Steps in Using Transactions |
14:00 | |
| |
SQL Command: UPDATE |
32:14 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:10 | |
| | |
| Lesson Overview |
0:11 | |
| | |
UPDATE Statement |
0:54 | |
| | |
| UPDATE Statement & Its WHERE Clause |
0:55 | |
| | |
| Example: UPDATE Statement |
3:32 | |
| | |
Using UPDATE from PHP |
5:21 | |
| | |
| Using UPDATE from PHP Overview |
5:22 | |
| | |
| Coding Example: Using UPDATE from PHP |
6:53 | |
| | |
htmlspecialchars() |
9:04 | |
| | |
| htmlspecialchars() |
9:05 | |
| | |
| Encoding Special Characters |
9:23 | |
| | |
| Coding Example: htmlspecialchars() |
13:41 | |
| | |
addslashes() |
20:40 | |
| | |
| addslashes() |
20:41 | |
| | |
| Coding Example: addslashes() |
22:52 | |
| | |
Homework Challenge |
27:55 | |
| | |
| Homework Challenge: 1 - 2 |
27:56 | |
| | |
Homework Challenge (cont.) |
30:14 | |
| | |
| Homework Challenge: 3 - 5 |
30:15 | |
| | |
Homework Challenge (cont.) |
30:41 | |
| | |
| Homework Challenge: 6 - 9 |
30:42 | |
| |
Web Application Development |
12:33 |
| | |
Intro |
0:00 | |
| | |
Version 18.0 Overview |
0:12 | |
| | |
| Version 18.0 Changes |
0:13 | |
| | |
| Version 18.0 Coding Example |
1:24 | |
| |
SQL: Joins |
42:16 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:11 | |
| | |
| Lesson Overview |
0:12 | |
| | |
DATETIME Data Type |
1:52 | |
| | |
| DATETIME Data Type |
1:53 | |
| | |
Modeling Orders |
5:12 | |
| | |
| Modeling Orders |
5:13 | |
| | |
Customers Table |
10:46 | |
| | |
| Customers Table |
10:47 | |
| | |
Example |
16:18 | |
| | |
| Example: Order Table in MySQL |
16:19 | |
| | |
Joins |
22:26 | |
| | |
| Joins Overview |
22:27 | |
| | |
| Inner Join |
23:09 | |
| | |
| Example: Joins |
24:11 | |
| | |
Join Conditions |
28:14 | |
| | |
| Join Conditions |
28:15 | |
| | |
| Example |
28:32 | |
| | |
| Join Queries |
30:00 | |
| | |
| Example: Join Conditions in MySQL |
30:36 | |
| | |
Implicit Joins |
34:42 | |
| | |
| Implicit Joins |
34:43 | |
| | |
| Example: Implicit Joins |
35:57 | |
| | |
Aliases |
37:28 | |
| | |
| Introduction to Aliases |
37:29 | |
| | |
| Example: Aliases |
38:55 | |
| | |
Required Homework |
40:32 | |
| | |
| Problem 1 |
40:33 | |
| | |
| Problem 2 |
41:01 | |
| | |
| Problem 3 |
41:17 | |
| |
Web Application Development |
29:34 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:12 | |
| | |
| Lesson Overview |
0:13 | |
| | |
Inserting Orders |
0:44 | |
| | |
| Inserting Orders |
0:45 | |
| | |
Version 19.0 Overview |
3:45 | |
| | |
| Version 19.0 Changes & Example Part 1 |
3:46 | |
| | |
| Version 19.0 Changes & Example Part 2 |
13:18 | |
| | |
Version 19.1 Overview |
21:10 | |
| | |
| Version 19.1 Changes |
21:11 | |
| | |
| Version 19.1 Coding Example |
22:18 | |
| |
User Authentication |
26:13 |
| | |
Intro |
0:00 | |
| | |
Lesson Overview |
0:10 | |
| | |
| Lesson Overview |
0:11 | |
| | |
User Authentication |
1:31 | |
| | |
| User Authentication |
1:32 | |
| | |
Authentication with Sessions |
2:34 | |
| | |
| Authentication with Sessions |
2:35 | |
| | |
| Four Steps in Authentication via Sessions |
2:50 | |
| | |
Using Sessions to Restrict Access |
3:58 | |
| | |
| Using Sessions to Restrict Access |
3:59 | |
| | |
| Coding Example: Restricted Access Area |
4:47 | |
| | |
Authentication Methods |
5:54 | |
| | |
| Authentication Methods Overview |
5:55 | |
| | |
| Coding Example: Authentication Methods |
7:31 | |
| | |
Logging Out |
9:57 | |
| | |
| Logging Out |
9:58 | |
| | |
| Coding Example: Log Out |
10:47 | |
| | |
Users Table |
13:50 | |
| | |
| Users Table |
13:51 | |
| | |
| Example: Creating a Users Table |
15:08 | |
| | |
Password Hashing |
17:30 | |
| | |
| Password Hashing |
17:31 | |
| | |
| PHP and MySQL Built-in Hash Functions: sha1 ( ) and md5 ( ) |
18:43 | |
| | |
| Coding Example: Password Hashing |
19:27 | |
| | |
Required Homework |
24:41 | |
| | |
| Required Homework: 1 - 4 |
24:42 | |
| |
Web Application Development |
14:36 |
| | |
Intro |
0:00 | |
| | |
Version 20.0 Overview |
0:13 | |
| | |
| Version 20.0 Changes & Examples Part 1 |
0:14 | |
| | |
| Version 20.0 Changes & Examples Part 2 |
5:05 | |
| | |
| Version 20.0 Changes & Examples Part 3 |
7:29 | |
| | |
Version 20.0 (cont.) |
8:31 | |
| | |
| Version 20.0 Changes & Examples Part 4 |
8:32 | |