2016-06-16 2 views
1

Я пытаюсь подключиться к базе данных, если условие внутри, если заявление удовлетворяется:подключения PHP базы данных внутри, если заявление

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, я получаю сообщение об ошибке: «Warning: mysql_select_db(): предоставленный аргумент не является допустимым ресурсом MySQL-Link в ...» Ошибка относится к строкам 2 и 4 в коде.

Примечания:

  1. Я нашел подобный вопрос, где решение было требовать подключения к базе данных внутри, если заявление, которое я сделал.

  2. Я понимаю, что функции mysql_ * устарели. На этом сайте есть несколько функций mysql_ *, с которыми я должен жить некоторое время.

Благодарим вас заблаговременно.

Edit: 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, как в примере.

+1

где находятся $ database_lg, $ lg values? –

+1

введите полный код в вопрос, пожалуйста, или еще код, чтобы дать нам контекст –

+0

Do 'var_dump ($ database_lg, $ lg);' inside if. –

ответ

2

Является ли ваше утверждение if внутри функции? Каждая функция имеет свой собственный объем в php. Ошибка, которую вы получаете, делает ее показанной в качестве параметров, которые вы передаете, $database_lg, $lg не определены, что означает, что они, вероятно, выходят за рамки. Вы должны убедиться, что переменные $database_lg, $lg видимы по телефону global:

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

Кроме того, положить require_once в верхней части кода (не в, если заявление).

+1

Я собирался сказать, что это не функция, но я проверил, и это так. Хорошо позвонил. Я переместил его из функции, и он работает. Большое спасибо. – blogo

+1

Счастливые помочь. Вы можете сохранить его в функции, если вам нужно, просто обязательно вызовите 'global' для каждой из переменных' $ lg' в начале определения функции, как я сделал выше (не нужно быть в if if statement, поскольку блоки оператора 'if' не имеют собственной области действия. –

Смежные вопросы