It might not be very easy to keep a log of each vbulletin’s compatibility with each version of MYSQL and PHP but there are some important items to remember so here they are:

  • Vbulletin 3.0.x versions are incompatible with PHP 4.0.6 or lower. They are not also officially announced to be compatible with PHP 5.x. However they are reported to work fine with php5.x after vbulletin version 3.0.4. So to upgrade your PHP version to 5.x, you should be at least running vb version 3.0.4 or above. And if you want to play safe with official support, you should make sure you have vbulletin 3.5.x at the least to upgrade to PHP 5.x series. In other words if you are running vbulletin 3.0.x, you are suggested to stick with PHP 4.x.
  • Vbulletin has full compatibility with MYSQL 5.x versions since 3.5.1. So if you vbulletin version lower than 3.5.1, you should make sure your server has MYSQL 4.x, not 5.x

Bottom line is that if you are still running vbulletin 3.0.x series, you should also keep your MYSQL in 4.x and PHP 4.x as well.  You shouldn’t upgrade your PHP 4.x to 5.x and musn’t upgrade your Mysql 4.x to MYSQL 5.x  before you upgrade your vbulletin to version 3.5.1 or above.

If you are still keeping your vbulletin 3.0.x board due to custom hacks etc., you might run into this problem in certain times like server migration,  upgrade or host company change. New web servers are likely to come with mysql5.x and PHP5.x installation by default so if you change host or server, you might end up in such a server and have serious problems in your vbulletin installation.

There might be a lot of different errors vbulletin throws in these incompatible MYSQL/PHP versions but most known is the one you get when you visit your user control panel:

Database error in vBulletin 3.0.x:Invalid SQL:
SELECT thread.threadid, thread.forumid
FROM thread AS thread, subscribethread AS subscribethread
LEFT JOIN deletionlog AS deletionlog ON(deletionlog.primaryid = thread.threadid AND type = ‘thread’)
WHERE subscribethread.threadid = thread.threadid
AND subscribethread.userid = xxx
AND thread.visible = 1
AND lastpost > 114785000
AND deletionlog.primaryid IS NULL

mysql error: Unknown column ‘thread.threadid’ in ‘on clause’

mysql error number: 1054 

BTW. there is a quick code modification fix to this error here, but such a incompatibility can always cause more problems in your forum so you are suggested to fix the incompatibility by version upgrades, rather than this fix.