Отдельный запрос mysql на форумах phpbb3 ничего не возвращает (mysql на сервере, но phpbb его не использует)

Поэтому я ввел несколько цитат в базу данных и хотел отобразить их в блоке нижнего колонтитула моей страницы форума phpbb3.

Я создал файл для подключения к базе данных и запрос под названием «ligacao.php»:

                                <?php
$ligacao = new mysqli("localhost","starwmjz_mike","PASSWORD","starwmjz_pallet");if($ligacao->connect_error){
die("Error:" . $ligacao->connect_errno . "," . $ligacao->connect_error);
}

$ligacao->set_charset("utf8");

$tipQuery = $ligacao->query("SELECT tipQuote FROM tips ORDER BY rand() limit 1");
?>

И в блок нижнего колонтитула я добавил эти строки:

<div id="col1">
<!-- Column one content beginning -->
<!-- INCLUDEPHP http://pallet-town.net/backend/ligacao.php -->
<!-- PHP -->
echo $tipQuery;
<!-- ENDPHP -->
<!-- Column one content end -->
</div>

MySQL находится на том же сервере, но не используется phpbb в любом другом экземпляре

Запрос работает отлично, так как я проверял его перед использованием.
Результатом является пустой блок нижнего колонтитула.
Я включил PHP на ACP.
Любая помощь и предложения приветствуются, спасибо.

0

Решение

Вы пропустили статистику выполнения запроса, и ваш код должен выглядеть следующим образом:

<?php
$ligacao = new mysqli("localhost","starwmjz_mike","PASSWORD","starwmjz_pallet");if($ligacao->connect_error){
die("Error:" . $ligacao->connect_errno . "," . $ligacao->connect_error);
}

$ligacao->set_charset("utf8");

$tipQuery = $ligacao->query("SELECT tipQuote FROM tips ORDER BY rand() limit 1");
?>

<div id="col1">
<!-- Column one content beginning -->
<!-- INCLUDEPHP http://pallet-town.net/backend/ligacao.php -->
<!-- PHP -->
while ($obj=$ligacao->fetch_object($tipQuery))
{
printf("%s \n",$obj->tipQuote);
}
<!-- ENDPHP -->
<!-- Column one content end -->
</div>
1

Другие решения

Вы пропустите один шаг, прежде чем повторить результат запроса.
Попробуйте это так:

<?php
$ligacao = new mysqli("localhost","starwmjz_mike","PASSWORD","starwmjz_pallet");if($ligacao->connect_error){
die("Error:" . $ligacao->connect_errno . "," . $ligacao->connect_error);
}

$ligacao->set_charset("utf8");

$tipQuery = $ligacao->query("SELECT tipQuote FROM tips ORDER BY rand() limit 1");
$obj = $ligacao->fetch_object($tipQuery);
?>

<div id="col1">
<!-- Column one content beginning -->
<!-- INCLUDEPHP http://pallet-town.net/backend/ligacao.php -->
<!-- PHP -->
echo $obj->tipQuote;
<!-- ENDPHP -->
<!-- Column one content end -->
</div>
0

В конце концов я нашел ответ, если у кого-то есть такая же проблема, это сработало для меня:

$result = mysqli_query($ligacao,"SELECT * FROM YOUR-TABLE-NAMe ORDER BY rand() LIMIT 1");
while($row = mysqli_fetch_array($result)) {
echo $row['YOUR-ROW-NAME'];

}
mysqli_close($ligacao);

Таким образом, чтобы получить доступ к внешнему mysql, вам нужен один PHP-файл в корневой папке форумов.
Чтобы включить в свой код, просто добавьте <!-- INCLUDEPHP YOUR-FILE.php -->куда вы хотите, чтобы информация была вставлена.

В данном конкретном случае окончательный код php-файла:

<?php

$ligacao = new mysqli("YOUR-HOST","DATABASE-USER","PASSWORD","DATABASE-NAME");if($ligacao->connect_error){
die("Error:" . $ligacao->connect_errno . "," . $ligacao->connect_error);
}

$ligacao->set_charset("utf8");$result = mysqli_query($ligacao,"SELECT * FROM YOUR-TABLE-NAME ORDER BY rand() LIMIT 1");
while($row = mysqli_fetch_array($result)) {
echo $row['YOUR-ROW-NAME'];
}

mysqli_close($ligacao);
?>
0