if 语句中的 PHP 数据库连接

标签 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 行。

注意事项:

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

  2. 我意识到 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/

相关文章:

mysql - Multi-Tenancy MySQL 数据库中数据的虚拟隔离

mysql - 是否应该在用户可以选择多个选项的结构中使用外键?如果是这样,怎么会这样?

php - PHP 中如何检查表行是否为空?

php - 我想将两种形式插入数据库,一种用于创建表,另一种用于插入数据,但它不插入数据库

phpmailer调试输出到html变量

php - 如何在 PHP 中启用 pcntl(同时使用像 Symfony 2 这样的框架)

php - Opencart:在 Opencart 产品页面中添加“立即购买”按钮

php - 当给定的变量可能没有值时,在 PHP 中强制保留 2 位小数且不使用逗号

php - 瑞典语字符和登录表单 PHP/MYSQL

java - JDBC 字符编码