Il discorso si basa proprio sul nuovo driver usato da mysql 5.1
Ora quel che segue non ha pretese di verita' tecnica assoluta, ma di mere constatazioni decisamente maccheroniche.
Fino alla versione php 5.2.nn su windows con filesystem NTFS il driver utilizzato era mysqld-nt.exe
Quanto eseguito da mysqld-nt e' confacente con la libreria libmysql.dll che deve essere letta da apache e quindi inserita in qualchepath di sistema.
Mysql fino alla versione 5.0.nn fornisce il driver mysqld-nt e quindi il cerchio si chiude.
php 5.2.nn va d'amore e d'accordo con mysql 5.0.nn
Ora viene rilasciata la versione mysql 5.1.nn che e' dotata del driver mysqld.exe ovviamente NON compatibile con la versione PHP 5.2.nn + libmysql.dll. Quindi questo driver "contiene" la libreria libmysql.dll che prima era esterna.
Il PHP 5.3.nn si adegua a questo nuovo palcoscenico fornito da mysql 5.1 e non carica piu' la libreria libmysql.dll.
php 5.3.nn va d'amore e d'accordo con mysql 5.1.nn
Personalmente a me tanto basta per associare sui miei pc php 5.2 con mysql 5.0 e php 5.3 con mysql 5.1. E non mi interessano cose buffe come alcuni work around che alla fine ti fanno diventare solo un meccanico del pc.
Perche' questo cambiamento? Molte le ragioni ma una semplicissima. La versione corrente della libreria libmysql.dll viene inglobata nel rilascio di php e tale rimane fino alla prossima versione di php. Da parte di mysql invece la libreria viene aggiornata ad ogni rilascio di mysql e in questa liberia avvengono le modifiche software come chiusura (e apertura) di bugs.
Quindi succede(va) che ad ogni aggiornamento di versione di mysql sarebbe stato necessario aggiornare anche la libreria libmysql.dll inserita nel famoso path di sistema e che viene fornita da mysql nella cartella \bin. Cosa che pochi facevano e che quindi rendeva inutile la correzioni o migliorie di prestazioni effettualte dal team mysql.
Ora inglobando la libreria oppure leggendo la libreria dal \bin di mysql questo problema viene superato. Infatti nel php 5.3.nn non si trova piu' questo libmysql.dll cosa che di fatto lo rende incompatibile con mysql 5.0.nn..... ma non finisce qui: siccome era invulsa la "mania" di credere che il path di sistema sia soltanto %system% ecco che da qualche parte potrebbe esistere un file libmysql.dll che viene caricato all'insaputa di tutti causando il fallimento dell'operazione.
And more and more.....