В настоящее время я обновляю свои знания PHP и натолкнулся на проблему при получении данных из моей базы данных.
Проблема, которая у меня есть, сама по себе может быть решена с помощью параметра max_connection (да, яискал вокруг), но я считаю, что это может быть обходной путь, так как я не хочу менять базовые настройки, если это не нужно.
У меня есть три "шага" в моей маленькой "лестнице"«;Моя главная задача - это лестница, каждая лестница имеет один (или более) шаг, а каждый шаг имеет один (или несколько) модулей.
Итак, я пытаюсь сделать функцию, которая извлекает все это и показываетих.Теперь каждая функция имеет связь с моей базой данных;где функция выполняет свой запрос и затем закрывается.Первым делом я решил закрыть базу данных между каждой функцией, что я и сделал, но поскольку я получаю свой код «все сразу», это не работает (см. Код).
Как мне поступитьо создании одного соединения с базой данных (возможно, в функции) и вызове его один раз, а затем извлечении всей информации без открытия новых соединений?
Я надеюсь, что у вас есть вся информация, необходимая для ответа на мои вопросы, и я надеюсь, что явыкладываю это способом переполнения стека.
Заранее спасибо.
PS: Не знаю, правильно ли я использовал этот инструмент кода, он выглядит структурированным, но у него нет бликов?
КОД:
<?php
echo displayResult();
function displayResult() {
$db = new mysqli ('localhost', 'website', 'dog', 'nplus');
$sql = 'SELECT * FROM ladders';
$result = $db->query($sql);
$r = '';
$r .= '<table>';
while ($row = $result->fetch_object()) {
$r .= '<tr>';
$r .= '<td>' . htmlspecialchars($row->ladderID) . '</td>';
$r .= '<td>' . htmlspecialchars($row->ladderName) . '</td>';
$r .= '<td>' . htmlspecialchars($row->created) . '</td>';
$r .= displayAssociateStep($row->ladderID);
$r .= '<tr><td> </td></tr>';
}
$r .= '</table>';
$db->close();
return $r;
}
function displayAssociateStep($ladderID) {
$r = '';
$db = new mysqli ('localhost', 'website', 'dog', 'nplus');
$sql = 'SELECT * FROM steps WHERE ladderID = '. $ladderID ;
$result = $db->query($sql);
$r = '';
while ($row = $result->fetch_object()) {
$r .= '<tr>';
$r .= '<td></td>';
$r .= '<td></td>';
$r .= '<td>' . htmlspecialchars($row->stepName) . '</td>';
$r .= '<td>' . htmlspecialchars($row->created) . '</td>';
$r .= '</tr>';
}
$db->close();
return $r;
}
?>