mysqli_connect()mysqli_connect():(HY000 / 2002):从其他php文件调用时没有这样的文件或目录错误

时间:2019-06-21 04:06:22

标签: php mysqli

我在这里有点奇怪,无法在网络搜索中找到原因。

我有一个functions.php文件,其中包含以下代码:

function random_color_part() {
    return str_pad( dechex( mt_rand( 0, 255 ) ), 2, '0', STR_PAD_LEFT);
}

function random_html_color() {
    return random_color_part() . random_color_part() . random_color_part();
}

function unique_random_colors($sql) {
    $link2 = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS) or die(mysqli_connect_error());
    mysqli_select_db($link2, $RMV_DB) or die(mysqli_error($link2));

    $m = array();
    if ($query = mysqli_prepare($link2, $sql)) {

        mysqli_stmt_execute($query);
        mysqli_stmt_bind_result($query, $user_id);

        while (mysqli_stmt_fetch($query)) {
            $m[$user_id] = random_html_color();
        }
    } else {
        return FALSE;
    }
    mysqli_close($link2);
    return $m;
}

在另一个文件中,我们将其称为main.php

<?php
require_once('functions.php');
$link = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS) or die(mysqli_connect_error());
$my_stmt = 'SELECT DISTINCT user FROM articles_discussion WHERE article='.mysqli_real_escape_string($link, $_GET['aid']);
print_r(unique_random_colors($my_stmt);
mysqli_close($link);

但是我收到错误mysqli_connect() mysqli_connect(): (HY000/2002): No such file or directory,它说这是在函数unique_random_colors的行中发生的,该行的内容为$link2 = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS) or die(mysqli_connect_error());

为什么会告诉我文件或目录不存在?如果我将功能代码复制并粘贴到一个独立的文件中,并进行了一些修改以使其在语法上正确无误,则可以正常运行。一旦我尝试从functions.php调用它,就会出现错误。

1 个答案:

答案 0 :(得分:0)

检查您的mysqli连接变量是否传递了正确的值。 最好不要在函数值内使用动态值的最佳实践。

为仅连接数据库创建另一个文件,并将其包括在文件中。在那里,您可以测试您的连接是否正常工作。