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] [email protected]
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