У меня есть файл, который объединяет мои повторно используемые функции в один файл (functions.php
). Это include_once()
на каждой странице, которая нуждается в этом. Я получаю сообщение об ошибке, когда мои пользовательские функции пытаются получить доступ к соединению MySQL вне их собственной области видимости. Источник немного похож на это:
<?php
// functions.php
$connect = mysql_connect("localhost", "user", "pass") or die("MySQL said: ".mysql_error());
mysql_select_db("database", $connect) or die("MySQL said: ".mysql_error()); // no error
/* ... */
function getmotd($user) {
$query = "SELECT cid FROM `users`
WHERE id = ".$user;
$query = mysql_query($query, $connect); // error occurs here, $connect is not a valid MySQL link-resource
/* ... */
}
?>
Почему моя функция не имеет доступа к переменным, объявленным выше ее области видимости? Я могу получить успешное соединение, воспроизведя объявление $connect
внутри функции.
Любое понимание того, как я могу обойти это или что я делаю здесь не так?