I am trying to connect PHP 5.4.22 and MySQL 5.5 with Apache 2.4.7 as the web server. All three of these individually are working fine. However, when I try to connect PHP with MySQL I get the error:
"Fatal error: Call to undefined function mysqli_connect() in..."
db_connect.php code
$con = mysqli_connect("localhost","root","root","mylab_dev");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$conn->close();
httpd.conf configuration:
ServerRoot "c:/Apache24"
#Listen 12.34.56.78:80
Listen 80
LoadModule php5_module "C:/php/php5apache2_4.dll" (Verified the existence of the physical file)
AddHandler application/x-httpd-php .php
DirectoryIndex index.php index.html
PHPIniDir c:/php
Modified php.ini-development file to php.ini
; extension_dir = "./"
; On windows:
extension_dir = "ext"
extension=php_mysql.dll --> Uncommented
extension=php_mysqli.dll --> Uncommented
Set the date timezone accordingly
One thing I noticed but not sure if this is the reason, in the phpinfo() page I see the MySQL information, but I don't see anything which says mysqli(). Should I?
解决方案
First of all, make sure you are editing the correct php.ini by checking from the phpinfo().
I wrote these instructions mainly for Windows users:
Edit your php.ini.
Check whether variable extension-dir is set properly. If not, specify the correct path as per your OS.
extension_dir = "C:\Program Files\php\ext"
Un-comment these lines by removing the ; (semi-colon):
extension=php_mysql.dll
extension=php_mysqli.dll