Frequently asked questions

1. Error message: Fatal error: Call to a member function fetch_object()/bind_param()/bind_result() on boolean in {filename} ... The all-time commonest question I am asked.

Solution: Check your MySQL query. It should have backticks (`...`) or nothing surrounding the table name and column names and quote marks ('...') surrounding values. If you have put quote marks around the table/column names or your table/column names do not exactly match those in the database, you will get this error.
SELECT * FROM `customers` WHERE `customer_id` = '1'; // Backticks round table and column names
SELECT * FROM customers WHERE customer_id = '1'; // Nothing round table and column names
SELECT * FROM 'customers' WHERE 'customer_id' = '1'; // Quote marks round table and/or column names
SELECT * FROM `customers` WHERE `customer_id` = `1`; // Backticks round values

2. I can't find html5shiv - it's not located at googlecode any more.

Solution: html5shiv is now located at

3. I cannot get Apache to start.

Solution: The commonest reason for problems with Apache is a port conflict, usually with Skype. For this and other troubleshooting tips, check out Chapter 3 of The Ultimate Web Development Course, which is free!
Also check out these detailed troubleshooting steps.

4. Can I use another code editor?

Solution: You can use any code (i.e. text) editor you like, provided that it saves files in plain text only. I usually use the free Komodo Edit, but equally good are Brackets or Notepad++. There are numerous comparisons of code editors on the web - here's one which explains the difference between IDEs (integrated development environments) and simple editors: Top Code Editors and IDE for PHP Development of 2017.