Always use the wpdb WordPress Database Class

I just had a troubleshooting conference call with a developer and we ran into an issue with a site I installed into a WordPress Multisite instance. At first glance it looked like it was a low-level PHP error since a foreach function was throwing an Invalid Argument error.

Digging deeper the developer found that the code that he wrote was using a hard-coded table reference to wp_options. I told him we are using a multisite instance and the fix was clear. There is no wp_options table, but there is a wp_8_options table specific to the site.

He replace that reference with…

' . $wpdb->prefix . 'options

…and viola. We both learned a lesson from that.

Always use the wpdb class to interact with the database so your code is as modular as possible.