如果满足 if 语句中的条件,我将尝试连接到数据库:
if ($check == 1){
require_once('Connections/connect.php');
mysql_select_db($database_lg, $lg);
$query = "SELECT token FROM tbltokens WHERE name = '$name'";
$result = mysql_query($query, $lg) or die(mysql_error());
}
如果我将相同的代码放在 if 语句之外,它就可以正常工作。一旦我将它包装在 if 语句中,我就会收到错误:“警告:mysql_select_db():提供的参数不是有效的 MySQL-Link 资源......”该错误适用于代码中的第 2 行和第 4 行。
注意事项:
我发现了一个类似的问题,解决方案是在 if 语句中要求数据库连接,我已经这样做了。
我意识到 mysql_* 函数已被弃用。这个站点上有大量的 mysql_* 函数,我不得不忍受更长的时间。
提前谢谢你。
编辑: 上面代码中提到的 connect.php 如下所示:
$hostname_lg = "xxx";
$database_lg = "xxx";
$username_lg = "xxx";
$password_lg = "xxx";
$lg = mysql_pconnect($hostname_lg, $username_lg, $password_lg)
or trigger_error(mysql_error(),E_USER_ERROR);
这可能不是很相关,因为当 if 语句不存在时连接会成功。它仅在示例中的 if 语句中才会失败。
最佳答案
您的 if 语句是否在函数内?每个函数在 php.ini 中都有自己的作用域。您收到的错误使它看起来像您传入的参数 $database_lg, $lg
未定义,这意味着它们可能超出范围。您应该通过调用 global
确保变量 $database_lg, $lg
可见:
if ($check == 1){
global $database_lg;
global $lg;
...
}
此外,将 require_once
放在代码的顶部(而不是在 if 语句中)。
关于if 语句中的 PHP 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868364/