我在这里有点奇怪,无法在网络搜索中找到原因。
我有一个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
调用它,就会出现错误。
答案 0 :(得分:0)
检查您的mysqli连接变量是否传递了正确的值。 最好不要在函数值内使用动态值的最佳实践。
为仅连接数据库创建另一个文件,并将其包括在文件中。在那里,您可以测试您的连接是否正常工作。