在PHP for Windows上调用未定义的函数mysqli_connect

时间:2018-03-08 16:47:29

标签: php mysql

我有以下代码:

<?php
    DEFINE ('DB_USER', 'test');
    DEFINE ('DB_PASSWORD', 'test');
    DEFINE ('DB_HOST', 'localhost');
    DEFINE ('DB_NAME', 'site');

    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
    OR die('Could not connect to MYSQL ' . mysqli_connect_error());
?>

如果我运行此命令,我将收到以下错误消息:

  

致命错误:未捕获错误:调用未定义函数mysqli_connect()

我正在使用PHP for Windows downloaded

根据我的阅读,您应该在php.ini文件中取消注释部分。我的PHP文件夹中没有php.ini,只有php.ini-development和php.ini-production。

我尝试将其中一个文件重命名为php.ini并取消注释extension=mysqli,但问题仍然存在。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

正如设置所说,你必须重命名其中的一个,如果你没有PHP将使用默认值。

因此,将其中一个更改为php.ini并取消注释该行 - 据我所知,这不应该是真正需要的。

答案 1 :(得分:0)

对于Windows ,您可以在Trade(Windows)或etc-Folder(xampp-Folder中)中找到该文件。

在Linux下,大​​多数发行版都将灯泡放在C:\xampp\php\php.ini-Folder下,因此可以在/opt/lampp下找到该文件。

如果你找不到它。然后你应该将其中一个重命名为php.ini文件。

答案 2 :(得分:0)

我遇到了同样的问题,大多数stackoverflow答案并没有真正明确地解决您设置php.ini时需要采取的其他步骤。如果您只是取消注释extension=mysqli,php仍然不知道任何扩展名实际位于何处,因此将无法加载它们。找到您的php.ini部分,类似于:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir = "ext"

然后取消注释底部的“ extension_dir”值,并使用“ ext”目录的绝对路径填写该值,即:

extension_dir = "<absolute-path-to-ext-folder>"

一旦完成了这两个步骤(取消注释extension=mysqli,然后在extension_dir中添加绝对路径),mysqli便正确加载了