본문 바로가기
MySql

MySQL 테이블이 비어 있는지 PHP 및 MySql 확인

by 베이스 공부 2020. 10. 20.
반응형

나는 약간 멍청하고 힘들어 ...

$ id 변수와 일치하는 행을 찾기 위해 db 테이블을 검색하는 코드가 필요합니다. 그 테이블 '설명'에 내가 잡아야 할 필드가 있습니다. null이면 다른 메시지가 아니라면 하나의 메시지를 표시해야합니다. 내가 가지고있는 코드는 다음과 같습니다.

$query = "SELECT description FROM posts WHERE id = $id";
$result = mysqli_query($dbc, $query);

$row = mysqli_fetch_array($result, MYSQLI_ASSOC) ;

if(!$row){
echo "<p>'No description'</p>";
} else {
echo '<p>' . $row['description'] . '</p>';
}

 

해결 방법

 

mysqli_fetch_array 는 해당 행의 열이 null인지 여부에 관계없이 행을 가져옵니다. $ row 가 설정된 경우 대신 $ row [ 'description'] 이 설정되었는지 확인하려고합니다.

$query = "SELECT description FROM posts WHERE id = $id";
$result = mysqli_query($dbc, $query);

$row = mysqli_fetch_array($result, MYSQLI_ASSOC);

if(isset($row['description'])) {
    echo "<p>No description</p>";
} else {
    echo '<p>' . $row['description'] . '</p>';
}

수정 : 또는 대안으로 설명이 NULL 인 데이터베이스에서 행을 가져올 수 없습니다.

$query = "SELECT description FROM posts WHERE id = $id AND description IS NOT NULL LIMIT 1";
$result = mysqli_query($dbc, $query);

$row = mysqli_fetch_array($result, MYSQLI_ASSOC);

if(! $row) {
    echo "<p>No description</p>";
} else {
    echo '<p>' . $row['description'] . '</p>';
}

이제 행을 잡을 수 있는지 여부를 확인합니다.

 

참조 페이지 https://stackoverflow.com/questions/4854148

 

 

반응형

댓글