В моем маленьком проекте все работало нормально, пока я не решил немного почистить и переместил php-файлы, связанные с базой данных, в свою собственную папку. Тогда все пошло странно.
Я пытаюсь использовать две функции здесь:
function getEntries () {
require_once("mysqliVariables.php");
$mysqli = new mysqli($dbHost, $dbUname, $dbPwd, $dbName);
$sql = "statement...";
$result = $mysqli->query($sql) or die($mysqli->error);
echo $dbHost; // prints host
return $result;
}
function getBiggestMonth () {
require_once("mysqliVariables.php");
$mysqli = new mysqli($dbHost, $dbUname, $dbPwd, $dbName);
echo $dbHost; // prints nothing! why?
$sql = "statement...";
$result = $mysqli->query($sql) or die($mysqli->error); // this line does not run, of course.
return $result;
}
Я использую другую функцию в другом файле (и папке) для вызова этих функций, которая начинается следующим образом:
<code>function listTasks() {
require_once("db/mysqliFunctions.php");
// Get entries using mysqli.
$tasks = getEntries();
echo "<pre>";
var_dump($tasks);
echo "
"; // программа отлично работает.
$ bm = getBiggestMonth (); // программа как-то прерывается во время этого вызова функции.
Мои переменные находятся в php-файле примерно так:
<?php
$dbHost = "host";
$dbUname = "username";
$dbPwd = "password";
$dbName = "databasename";
?>
Если я переключу порядок вызова функции, то getBiggestMonth () будет работать нормально, а другой - нет. Кроме того, все это прекрасно работало , когда все файлы находились в одной папке (тогда функции были статическими функциями внутри класса, но это не должно быть проблемой, та же проблема здесь сохраняется), поэтому я не понимаю, как возможная область видимости переменной здесь может отличаться, и require_once должен позаботиться о других вещах. Помощь