현재 위치: > 최신 기사 목록> 세트 데이터를 결과에 유형 주조 메커니즘을 추가하십시오

세트 데이터를 결과에 유형 주조 메커니즘을 추가하십시오

M66 2025-06-02

MySQL 데이터베이스를 사용할 때 PHP는 데이터베이스와 상호 작용하기 위해 강력한 MySQLI 확장 기능을 제공합니다. 일반적인 작업은 mysqli_query ()를 사용하여 쿼리를 실행하고 결과를 얻는 것입니다. 일반적으로 쿼리 결과 세트는 mysqli_result 객체를 통해 액세스됩니다. 결과 세트를 처리 할 때 숫자, 문자열, 날짜 등과 같은 다른 유형의 데이터가 발생할 수 있습니다. 데이터 유형 오류를 피하려면 데이터를 가져올 때 유형 캐스팅 메커니즘을 추가해야 할 수 있습니다.

이 기사는 MySQLI_Result 함수의 결과 세트에 유형 캐스트 ​​메커니즘을 추가하는 방법을 소개하여 각 필드가 예상 데이터 유형에 따라 처리되도록합니다.

1. mysqli_result 결과 세트를 받으십시오

먼저, mysqli_query () 함수를 사용하여 SQL 쿼리를 실행하고 mysqli_result 객체를 얻는 방법을 검토 해 봅시다.

 <?php
// 데이터베이스 연결을 만듭니다
$mysqli = new mysqli('localhost', 'username', 'password', 'database_name');

// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

// 쿼리를 실행하고 결과 세트를 가져옵니다
$query = "SELECT id, name, price, created_at FROM products";
$result = $mysqli->query($query);

// 쿼리가 성공했는지 확인하십시오
if ($result) {
    // 프로세스 쿼리 결과
    while ($row = $result->fetch_assoc()) {
        // 각 데이터 행을 처리합니다
    }
} else {
    echo "쿼리가 실패했습니다: " . $mysqli->error;
}

// 연결을 닫으십시오
$mysqli->close();
?>

이 예에서는 mysqli_query () 함수를 통해 SQL 쿼리를 실행하고 mysqli_result 객체를 반환합니다. 다음으로, 우리는 객체에서 작동하고 데이터를 읽습니다.

2. 유형 캐스트를 추가하십시오

mysqli_resultfetch_assoc () 함수는 필드의 실제 유형이 정수 또는 부동 번호 일 수있는 경우에도 기본적으로 데이터를 기본적으로 문자열로 반환합니다. 이를 위해서는 쿼리 결과를 처리 할 때 데이터가 예상 유형을 충족하는지 확인할 때 수동으로 유형 캐스팅을 수행해야합니다.

2.1 정수에 캐스팅

필드가 정수 유형 인 경우 (int) 캐스팅으로 정수로 변환 할 수 있습니다.

 <?php
while ($row = $result->fetch_assoc()) {
    $id = (int) $row['id'];  // 정수에 캐스트
    echo "Product ID: " . $id . "<br>";
}
?>

플로팅 숫자로 2.2 건

필드가 플로팅 숫자 유형 인 경우 (float) 또는 (Double) Cast로 플로팅 유형으로 변환 할 수 있습니다.

 <?php
while ($row = $result->fetch_assoc()) {
    $price = (float) $row['price'];  // 부동 번호로 캐스트
    echo "Product Price: " . $price . "<br>";
}
?>

2.3 부울 유형으로 캐스팅

부울 필드의 경우 True 또는 False 로 변환 할 수 있습니다.

 <?php
while ($row = $result->fetch_assoc()) {
    $is_active = (bool) $row['is_active'];  // 부울 유형으로 캐스트
    echo "Product Active: " . ($is_active ? 'Yes' : 'No') . "<br>";
}
?>

2.4 날짜까지 캐스팅 유형

필드가 날짜 유형 인 경우 DateTime :: CreateFromFormat () 메소드를 사용하여 날짜 개체로 변환하거나 strtotime ()을 직접 사용하여 타임 스탬프로 변환 할 수 있습니다.

 <?php
while ($row = $result->fetch_assoc()) {
    $created_at = strtotime($row['created_at']);  // 타임 스탬프로 변환하십시오
    echo "Created At: " . date('Y-m-d H:i:s', $created_at) . "<br>";
}
?>

3. 배치 변환을 위해 사용자 정의 기능을 사용하십시오

입력 해야하는 여러 필드가있는 경우 사용자 정의 기능 및 배치 프로세스 유형 변환을 캡슐화 할 수 있습니다. 이는 코드의 유지 관리 및 재사성을 향상시킬 수 있습니다.

 <?php
function convert_types($row) {
    $row['id'] = (int) $row['id'];
    $row['price'] = (float) $row['price'];
    $row['is_active'] = (bool) $row['is_active'];
    $row['created_at'] = strtotime($row['created_at']); // 타임 스탬프로 변환하십시오

    return $row;
}

while ($row = $result->fetch_assoc()) {
    $row = convert_types($row);
    echo "Product ID: " . $row['id'] . "<br>";
    echo "Product Price: " . $row['price'] . "<br>";
    echo "Product Active: " . ($row['is_active'] ? 'Yes' : 'No') . "<br>";
    echo "Created At: " . date('Y-m-d H:i:s', $row['created_at']) . "<br>";
}
?>

이 예에서 Convert_Types () 함수는 각 행의 데이터를 예상 유형으로 변환하여 쉽게 표시하거나 다른 작업을 할 수 있습니다.

4. 요약

MySQLI_Result 결과 세트에 유형 캐스트 ​​메커니즘을 추가하면 데이터 유형을 더 잘 제어하고 유형 불일치로 인한 오류를 피할 수 있습니다. 데이터를 정수, 부동 소수, 부울 또는 날짜 유형으로 변환하든 캐스팅은 데이터의 정확성과 일관성을 보장합니다. 전환 함수를 캡슐화함으로써 코드를보다 간결하고 유지 관리 할 수 ​​있습니다.

MySQL 쿼리 결과를 처리 할 때이 기사가 도움이되기를 바랍니다.