Kevin Yank, Build Your Own Database-Driven Web Site with PHP and MySQL (Sitepoint, 2009)
I have just finished my first read through Kevin Yank's Build Your Own Database-Driven Web Site with PHP and MySQL. I can tell you that it will not be my last read through it, by any means. While there are a few places it glosses over and a few rather shocking omissions in the name of simplicity, it was (and I can rarely say this with a computer book) exactly what I was looking for.
Using simple, easy-to-understand tutorials, Yank takes you through the development of a very simple website that has a database as its back end. This should not surprise you, given the title of the book. Impressively, it neither manages to talk down to its reader (assuming a complete newb) nor spirals off into overly technical jargon (assuming a MySQL-certified reader). Granted, if you've been a database developer for ten years (that would be me) some of this will be redundant, but it's a good refresher course for basic database concepts and a perfect way to immerse yourself in MySQL if you're coming from a different DBMS. That said, my main problem with the book was Yank's breezy passing by the idea of using the InnoDB engine and letting your code handle foreign key constraints. That's workable (though very, very iffy) for the four-table database Yank builds here, but any real-life (read: complex) solution will quickly get unmanageable; any minor change to the table structure, depending on how many tables it relates to, could require hours of hunting and changing code. As any programmer learns within the first ten minutes of starting his first programming course, that is a recipe for bugs.
My other problem with it, though this is far more minor, is that (I think) content management systems like this usually store site settings in the database as well, and Yank doesn't address this at all beyond logins and passwords, choosing to refer the user to learning CSS. I thought CSS was dead, or close to it. I'd have expected that in a book written in 2004, but in 2009? But my inexperience with web apps—I've always been a back-end developer—may be more at fault than Yank's writing, so I'll defer judgment on that to those who actually know what they're doing with this stuff, who will hopefully get round to reviewing the book eventually. In any case, the stuff that's actually here, the parts on data access and getting your data from database to website, are clear as well as being very easy to understand and implement, and that's a rare thing in computer books. Highly recommended, though you'll need other books to cover the places where this is lacking. ****