Edit report at https://bugs.php.net/bug.php?id=42613&edit=1
ID: 42613 Comment by: cedricipkiss at gmail dot com Reported by: patrick at baynewmedia dot com Summary: Unable to load Dynamic Link Libraries - installer buggy Status: Closed Type: Bug Package: Windows Installer Operating System: Windows XP Pro & Windows Vista PHP Version: 5.2.4 Assigned To: jmertic Block user comment: N Private report: N New Comment: Some of the extensions require libmysql. you should make sure libmysql.dll is installed on your computer, you can look for it under C:\Windows\System32. This is specified in the php manual ( http://php.net/manual/en/install.windows.extensions.php). You can download libmysql.dll at http://www.dll-files.com/dllindex/dll-files.shtml?libmysql. This bug took me quite some time to solve. Hope it helps. Previous Comments: ------------------------------------------------------------------------ [2007-11-13 17:40:02] patrick at baynewmedia dot com "Just to clarify again, you don't need to manually adjust the php.ini file; the installer handles that for you." I got that, but that's simply not always the case. I appreciate what you're saying but the problem is that, while there are claims that the extensions *should* work, they don't. I say they don't, and the answer continues to be that they *should*. So, erm, how does this resolve the problem again? "I bet your script is referencing the mysql_* functions, which require the the mysql extension. Since you are working with MySQL 5, I'd recommend moving to the mysqli_* functions; they are mostly identical, but support some of the newer MySQL 4.1+ features." Actually no, I was the "mysqli_" functions (well, at least I was initially). I like using the latest and greatest and this seemed to be the way to go. But like I said, the mysqli extension simply doesn't work. So I had to downgrade to mysql to get it running. Again, the problem is not really entirely solved. "If you need multibyte support, enable the Multi-Byte String (mbstring) extension." Okay...not included by default with the MySQL extension so I have to edit the PHP.INI file. Granted it's optional but clearly your first suggestion to not update the INI file really implies that your web server will only ever do one thing, and that any time you want to do something else you need to re-install it. If not, you should be able to install all the extensions you *think* you may ever need...and we're right back to step 1!!! "Any changes to the php.ini file require a restart to the web server." ...right. If I failed to omit this anywhere it's just because it was getting tedious constantly repeating myself. But yes, I restart my we server each and every time. "I'm marking this closed since it sounds like there isn't a PHP error here, mainly a user configuration error." Okay, so here's the thing. If I install PHP, I only install exactly what I need at that exact moment, correct? If need anything else, I a) shouldn't touch the INI file because the installer did it for me (so I'm stuck), b) Update the INI file by hand and risk enabling a faulty extension (right back to the very top of this problem), c) Re-install PHP and enable the extensions I need now. Besides that, it still doesn't answer the fundamental question and problem....if I want functionality "A", which extensions should I be planning to install way ahead of time to ensure that I can use it. Furthermore, why do a number of the extensions fail? The basic questions that this whole thing started with haven't been answered or addressed in any way. The bug summary "Unable to load Dynamic Link Libraries - installer buggy" has pretty much been ignored. Maybe it's not an installer issue but we've managed to get so far off topic...trying to get one precise installation going...that the original problem has been forgotten. I'm glad I can partially use MySQL, don't get me wrong, but how has the original bug been fixed? ------------------------------------------------------------------------ [2007-11-12 12:56:22] jmer...@php.net Just to clarify again, you don't need to manually adjust the php.ini file; the installer handles that for you. I bet your script is referencing the mysql_* functions, which require the the mysql extension. Since you are working with MySQL 5, I'd recommend moving to the mysqli_* functions; they are mostly identical, but support some of the newer MySQL 4.1+ features. If you need multibyte support, enable the Multi-Byte String (mbstring) extension. Any changes to the php.ini file require a restart to the web server. I'm marking this closed since it sounds like there isn't a PHP error here, mainly a user configuration error. ------------------------------------------------------------------------ [2007-11-05 16:04:44] patrick at baynewmedia dot com ...oh, regarding the mispelling issue; yes, I had initially misspelled the extension names, a few times. First time I'd forgotten the "php_" at the front, the next time it was something else. I'll be the first to admit that that's just dumb on my part, but it's worthwhile to point out that no errors were reported. I mean 0 errors. The extensions, justifiably, didn't show up on the info page, but neither did any sort of error reports that the DLL mentioned doesn't exist (or something to that effect). Furthermore, I did finally fix my spelling but the result is still the same. If I make alterations by hand, the info page simply doesn't reflect this. I even tried copying the INI file that was created with the successful MySQL/i installation (where I enabled it in the installer). When I tried this again by hand on my XP machine...just open up the existing INI and dump the contents of the working one in there...no changes! The phpinfo page does not show any MySQL instances anywhere. If I uninstall and re-install with the extensions enabled, however, they're there! And the INI files are, byte for byte, exactly the same. ------------------------------------------------------------------------ [2007-11-05 15:51:21] patrick at baynewmedia dot com *However*, the MySQLi extension didn't work (I'm running PHP5) ... should've read: *However*, the MySQLi extension didn't work (I'm running MySQL 5) ------------------------------------------------------------------------ [2007-11-05 15:50:12] patrick at baynewmedia dot com "Make sure that you enabled the mysqli extension ( or mysql if you are connecting to a pre-4.1 server ) in the installation. I have done this myself and libmysql.dll shows up in the installation directory." I did this initially by hand. I added the "extension" directive into the PHP.INI file when installing with no extensions. However, the extension failed to show up when running php_info(). There was no error to suggest it was missing or misspelled. Simply, nothing. The only way I could run the MySQL extension was to specify it when running the installer. *However*, the MySQLi extension didn't work (I'm running PHP5). When I tried to run any simple scripts, I was simply told that the MySQL extension wasn't loaded (no mention of mysqli). So I installed again with both extensions enabled and the scripts now worked, except that they warn that the multibyte string extension should also be present. To sum up: 1. Installing the extensions by hand had no--I repeat--no effect. there were no errors or messages indicating that something was wrong, the extensions simply didn't show up. 2. Installing with mysqli only doesn't work. I keep getting asked for the mysql extension instead. I am 100% certain I'm running MySQL 5. 3. Re-installing with both mysqli and mysql allows me to finally connect *but* I get "missing multibyte string" extension. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=42613 -- Edit this bug report at https://bugs.php.net/bug.php?id=42613&edit=1