현재 PHP 지식을 업데이트하고 있으며 데이터베이스에서 데이터를 가져 오는 동안 문제가 발생했습니다.너무 많은 연결; 함수에 db가 연결되었습니다.
내가 가지고있는 문제는 아마도 max_connection 설정으로 정렬 할 수 있지만 (예, 주위를 검색했습니다) 기본 설정을 변경하고 싶지 않기 때문에 문제가 해결 될 수도 있습니다. 필요하지 않은 경우.
나는 내 작은 "사다리"에 세 개의 "계단"을 가지고 있습니다. 내 메인은 사다리입니다. 모든 사다리에는 하나 이상의 (또는 그 이상의) 단계가 있으며 모든 단계마다 하나 이상의 (또는 그 이상의) 모듈이 있습니다.
그래서 내가하려는 것은이 모든 것을 검색하여 보여주는 함수입니다. 이제는 모든 함수가 내 데이터베이스에 연결합니다. 함수가 쿼리를 실행 한 다음 닫습니다. 내 첫 번째 단서는 내가 한 모든 함수 사이에서 데이터베이스를 닫는 것이 었습니다. 그러나 "한꺼번에"내 코드를 검색하고 있기 때문에 코드가 작동하지 않습니다.
어떻게하면 함수에서 한 데이터베이스 연결을 만들고 한 번 호출 한 다음 새 연결을 열지 않고도 모든 정보를 검색하는 방법은 무엇입니까?
내 질문에 답변하는 데 필요한 모든 정보가 있으면 좋겠다. 스택 오버플로 방식으로 게시하고 싶습니다.
미리 감사드립니다.
P.S :이 코드 도구를 올바르게 사용하면 Dunno가 구조적으로 보이지만 하이라이트가 없습니다.
CODE :
<?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;
}
?>
함수를 사용하기 전에 $ db 객체를 만드는 것이 어떻습니까? 당신은 그것을 생성하고, 함수에 인자로 넘겨 주며 (또는 함수에 접근 할 수 있도록 전역으로 만든다) 함수를 사용하고 닫는다. 그렇게하면 데이터베이스에 단 하나의 연결 만 있습니다. –