if语句里面的PHP数据库连接

时间:2016-06-16 19:59:15

标签: php mysql

如果满足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行。 / p>

注意:

  1. 我发现了一个类似的问题,解决方案是在if语句中要求数据库连接,我已经完成了。

  2. 我意识到不推荐使用mysql_ *函数。这个网站上有大量的mysql_ *函数,我不得不忍受一段时间。

  3. 提前谢谢。

    编辑: 上面代码中提到的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语句中失败,如示例中所示。

1 个答案:

答案 0 :(得分:2)

你的if语句是否在函数内?每个函数在php中都有自己的作用域。您收到的错误使其看起来像您传入的参数,$database_lg, $lg未定义,这意味着它们可能超出了范围。您应该通过调用$database_lg, $lg确保变量global可见:

if ($check == 1){
    global $database_lg; 
    global $lg;
    ...
}

另外,将require_once放在代码的顶部(不在if语句中)。