php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #30409 MySQLi Loaded with MySQL Causes loss of MySQL Functions
Submitted: 2004-10-12 14:34 UTC Modified: 2004-11-14 01:00 UTC
Votes:18
Avg. Score:4.9 ± 0.3
Reproduced:17 of 17 (100.0%)
Same Version:14 (82.4%)
Same OS:16 (94.1%)
From: david at inspiredthinking dot co dot uk Assigned:
Status: No Feedback Package: MySQLi related
PHP Version: 5CVS-2004-10-12 (dev) OS: Windows XP SP2
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please — but make sure to vote on the bug!
Your email address:
MUST BE VALID
Solve the problem:
12 - 8 = ?
Subscribe to this entry?

 
 [2004-10-12 14:34 UTC] david at inspiredthinking dot co dot uk
Description:
------------
Loading both MySQL & MySQLi using extension= causes loss of MySQL functions (Fatal error: Call to undefined function mysql_connect()).

When the MySQLi entry is removed - the MySQL functions are defined.

Reproduce code:
---------------
PHP.INI
extension=php_mysql.dll
extension=php_mysqli.dll

This fails with the above:
$dblink = mysql_connect($db_host, $db_user, $db_pass);

PHP.INI
extension=php_mysql.dll
;extension=php_mysqli.dll

Success:
$dblink = mysql_connect($db_host, $db_user, $db_pass);


Expected result:
----------------
Described above.

Actual result:
--------------
Fatal error: Call to undefined function mysql_connect() 

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-10-23 16:03 UTC] atiara at covad dot net
I have encountered difficulties which I believe are related to this bug as it is reported herein.  I am trying to install PHP 5.0.02 on a Windows 2k/IIS 5.x Server.  Prior to this installation the target environment was executing with PHP 4.xxx.   In this pre-installation environment I was also executing MySQL 4.0.18-nt, the same version that I am now having problems with in the context of PHP 5.0.02.  I am failing when I reach the point of making a mysql_connect(...) call.   I am fairly certain that I have caused this to fail by simply attempting to load with only the mysql library (i.e. sans mysqli).   I hope this has been of some use to you.   Good luck with your efforts to get this particular version of php up and running with MySQL.  In my own particular case, PHP is of no use to me unless it will interface with my MySQL database.
 [2004-10-23 16:16 UTC] atiara at covad dot net
I stand corrected.   I rechecked my php.ini and discovered that I had not disabled to the loading of php_mysqli.dll.  Upon disabling that particular module I was able to resume normal execution.   Therefore, my case is no different from that originally reported by david.
 [2004-10-28 23:46 UTC] fscii at yahoo dot com
My case is that I am only trying to use php_mysqli.dll to interface with MySql 5.x (using php 5.02).  I was under the impression you do not require to use both php_mysqli.dll AND php_mysql.dll - I am of the opinion you use either one or the other.  I get the message:

Fatal error: Call to undefined function mysql_connect())

When I attempt to use php_mysql.dll I get the EXPECTED error of:

"Client does not support authentication protocol requested by server; consider upgrading MySQL client"

(which is the entire reason PHP suggests php_mysqli.dll).

I have no intention of converting the MySQL 5 passwords to the old method of storage and php is of no use to me if it does not work with MySQL.

Please advise!
 [2004-10-28 23:56 UTC] fscii at yahoo dot com
I would like to add that a call to phpinfo() shows that php_mysqli.dll is actually being loaded - no clue why its totally ineffective!?

MysqlI Support enabled 
Client API version 4.1.3-beta 
MYSQLI_SOCKET /tmp/mysql.sock 

Directive Local Value Master Value 
mysqli.default_host no value no value 
mysqli.default_port 3306 3306 
mysqli.default_pw no value no value 
mysqli.default_socket no value no value 
mysqli.default_user no value no value 
mysqli.max_links Unlimited Unlimited 
mysqli.reconnect Off Off
 [2004-11-06 06:41 UTC] edink@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php5-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.0-win32-latest.zip


 [2004-11-14 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2006-04-18 09:02 UTC] verysimple at googlemail dot com
I think I finally figured something out folks: 

I'm running php5, apache2 and mysql5 on a winxp machine.

In php.ini I have:
extension_dir='c:/php'
extension=php_mysqli.dll
I copied the php_mysqli.dll and libmysql.dll in my php install folder which is also my extension directory (extension_dir='c:/php').

As you can see all instructions followed as recommended throughout the web.

I created a phpinfo() test page and I get MySQLi information with no problem.

I installed phpMyAdmin and it's running fine as well.

But I started building a mysql class in php and got stuck with the "Fatal error: Call to undefined function mysql_connect()". That's when the headache began.

After about 2 hours I tried mysqli_connect() instead of mysql_connect() and the error disappeared and gave way to the next "undefined function error" still related to a mysql_ function. I soon discovered that there's a whole new set of mysqli_ functions that are part of the new library. Basically wherever you used to have mysql_ you now use mysqli_. It should however be noted that the latter version is a bit more strict when it comes to parameters passed as variables. The $linkID is often required in the function call, not optional as it used to be in the former library.

have a look: http://ca3.php.net/manual/en/function.mysqli-connect.php

I think this is a detail that should have been advertised a bit more when they were handing out mysqli.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Mar 28 11:01:27 2024 UTC