PHP에서 MySQL 데이터베이스를 처리 할 때 성능 및 데이터 수집 효율성이 종종 개발자가주의를 기울이는 주요 문제입니다. Connect () 함수를 사용하여 MySQLI_FETCH_ASSOC () 함수로 데이터베이스 연결을 설정하여 데이터를 읽을 수 있도록 코드의 가독성을 향상시킬 수있을뿐만 아니라 응용 프로그램의 실행 효율을 어느 정도 향상시킬 수 있습니다. 이 기사는 두 가지를 통해 효율적인 데이터를 읽는 방법을 심층적으로 탐구합니다.
PHP에서는 일반적으로 Connect () 함수를 캡슐화하여 데이터베이스 연결 객체를 작성하고 반환합니다. 이것의 장점은 재사용 성과 명확한 코드를 가지고 있다는 것입니다.
function connect() {
$host = 'localhost';
$user = 'db_user';
$password = 'db_pass';
$database = 'my_database';
$conn = new mysqli($host, $user, $password, $database);
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
return $conn;
}
이 기능은 데이터베이스 연결 프로세스를 캡슐화하고 연결 오류를 처리합니다. 이 구조는 연결 로직을 한 번만 유지해야하므로 코드 유지 보수 작업을 단순화합니다.
mysqli_fetch_assoc () 함수는 MySQLI 확장에서 일반적으로 사용되는 결과 세트 처리 기능입니다. 필드 이름으로 키 이름을 가진 연관 배열을 반환하고 키 값은 해당 필드의 값입니다. 이 방법은 구조화 된 데이터를 처리 할 때 특히 편리합니다.
다음은 완전한 데이터 읽기 예입니다.
$conn = connect();
$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row["id"] . " - 사용자 이름: " . $row["username"] . " - 우편: " . $row["email"] . "<br>";
}
} else {
echo "기록이 없습니다";
}
$conn->close();
메모리 사용량이 적습니다 <br> mysqli_fetch_array () 와 비교하여 모든 유형의 데이터를 반환하는 것과 비교하여 (수치 인덱스 및 연결 색인 포함) mysqli_fetch_assoc ()는 연관 배열 만 반환하여 메모리 오버 헤드를 저장합니다.
더 읽기 쉬운 코드 <br> 필드 이름을 사용하여 배열 요소에 액세스하는 것이 $ row [ "username"] 와 같이 더 직관적입니다.
JSON을 쉽게 변환하기 쉬운 <br> 데이터베이스에서 얻은 연관 배열은 JSON 객체로 직접 변환 할 수 있으며, 이는 편안한 API를 구축 할 때 매우 유용합니다.
$data = [];
while($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
echo json_encode($data);
위에서 언급 한 메소드와 결합하여 웹 페이지의 프론트 엔드에 사용자 목록 데이터를 표시해야한다고 가정합니다. HTML 테이블을 빠르게 생성 할 수 있습니다.
$conn = connect();
$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);
echo "<table border='1'>";
echo "<tr><th>ID</th><th>사용자 이름</th><th>우편</th></tr>";
while($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $row["id"] . "</td>";
echo "<td>" . $row["username"] . "</td>";
echo "<td><a href='https://m66.net/user/" . $row["id"] . "'>" . $row["email"] . "</a></td>";
echo "</tr>";
}
echo "</table>";
$conn->close();
이 예에서는 도메인 이름을 출력 요구 사항에 대한 사양을 충족하는 URL과 관련된 모든 부품에 대해 M66.NET 으로 바꿉니다.
Connect () 함수를 합리적으로 사용하여 데이터베이스 연결 로직을 캡슐화하고 MySQLI_Fetch_Assoc () 로 데이터를 효율적으로 획득함으로써 응용 프로그램 성능을 향상시킬뿐만 아니라 코드를보다 간결하고 이해하기 쉽게 만들 수 있습니다. 일일 개발에서는이 모델을 인프라의 일부로 사용하는 것이 좋습니다.