현재 위치: > 최신 기사 목록> mysql_fetch_assoc이 비어있는 결과를 반환하는지 알려주는 방법

mysql_fetch_assoc이 비어있는 결과를 반환하는지 알려주는 방법

gitbox 2025-05-29

PHP 및 MySQL을 사용하는 개발 과정에서 많은 초보자가 문제가 발생합니다. mysql_fetch_assoc ()를 사용하여 쿼리 결과를 처리 할 때 데이터가 반환되지 않으면 어떻게 판단해야합니까? 이 기사를 통해 올바르게 판단을 내리는 방법을 찾아서 가르쳐 줄 것입니다.

mysql_fetch_assoc이란 무엇입니까?

판단 방법에 대해 이야기하기 전에 mysql_fetch_assoc () 의 기본 역할을 이해해야합니다. MySQL_Query () 가 반환 한 결과 세트에서 데이터 행을 가져 와서 연관 배열로 반환하는 PHP 함수입니다. 사용법은 다음과 같습니다.

<code> $ result = mysql_query ( "select * status = 'active'"); $ row = mysql_fetch_assoc ($ result); </코드>

함수가 호출 될 때마다 결과 세트의 데이터가 가져올 때까지 다음 줄로 돌아갑니다. 더 이상 데이터가 없으면 False를 반환합니다.

데이터가 있는지 여부를 결정하는 방법은 무엇입니까?

데이터가 없을 때 함수가 거짓을 반환하므로 반환 값이 False 인지 판단하여 결과가 있는지 직접 확인할 수 있습니다. 다음은 일반적이고 올바른 작문 방법입니다.

<code> $ result = mysql_query ( "select * status = 'active'");

if ($ result && mysql_num_rows ($ result)> 0) {
while ($ row = mysql_fetch_assoc ($ result)) {
echo $ row [ 'username']. "<br>";
}
} 또 다른 {
Echo "기준을 충족하는 데이터 없음";
}
</코드>

여기의 판단은 두 가지 수준으로 나뉩니다.

  1. $ resultfalse 인지 여부는 쿼리가 성공했는지 여부를 나타냅니다.

  2. mysql_num_rows ($ result)> 0은 반환 된 레코드 라인이 있는지 여부를 결정하는 데 사용됩니다.

mysql_fetch_assoc의 반환 값이 false인지 판단해도 괜찮습니까?

어떤 사람들은 게으르고 mysql_fetch_assoc () 의 결과를 직접 판단하기를 원할 수도 있습니다.

<code> $ row = mysql_fetch_assoc ($ result);

if ($ row === false) {
에코 "데이터 없음";
} 또 다른 {
// 데이터, 프로세스 $ 행이 있습니다
}
</코드>

이것은 간단한 쿼리에서는 가능하지만 판단하는 유일한 방법으로 권장되지 않습니다. 일단 여러 데이터를 처리해야하기 때문에 (Traversal 사용 ) 먼저 데이터가 있는지 여부를 결정하려면 먼저 MySQL_Num_Rows ()를 사용해야합니다. 그렇지 않으면 명령문 이 전혀 실행되지 않습니다.

권장 방법

전반적으로 가장 안전하고 가장 일반적인 방법은 먼저 쿼리가 성공했는지 여부를 먼저 결정한 다음 mysql_num_rows ()를 사용하여 결과가 있는지 확인하고 마지막으로 MySQL_Fetch_Assoc ()를 사용하여 데이터를 얻습니다. 완전한 예는 다음과 같습니다.

<code> $ conn = mysql_connect ( "localhost", "user", "password"); mysql_select_db ( "mydb", $ conn); mysql_set_charset ( "utf8", $ conn);

$ sql = " '%@gitbox.net'과 같은 이메일이있는 사용자에서 선택 *;
$ result = mysql_query ($ sql);

if ($ result && mysql_num_rows ($ result)> 0) {
while ($ row = mysql_fetch_assoc ($ result)) {
echo $ row [ '이메일']. "<br>";
}
} 또 다른 {
Echo "관련 사용자는 찾을 수 없습니다.";
}
</코드>

요약

mysql_fetch_assoc ()는 실제로 데이터가없는 신호 인 false를 반환하지만 프로그램 견고성과 명확성을 위해서는 mysql_num_rows () 와 함께 사용하는 것이 좋습니다. 또한 MySQL_* 시리즈 기능은 최신 버전의 PHP로 포기되었으며 데이터베이스 작업에는 MySQLI 또는 PDO를 사용하는 것이 좋습니다. 그럼에도 불구하고, 오래된 기능의 행동을 이해하는 것은 오래된 프로젝트를 유지하는 데 여전히 매우 중요합니다.

이러한 판단 방법을 마스터하면보다 강력하고 신뢰할 수있는 PHP 데이터 처리 로직을 작성할 수 있습니다.