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] jmertic@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