2012-12-11 3 views
-2

빠른 질문 :mysql에 이미 행이 있는지 확인하십시오.

행이 이미 mysql에 있는지 확인하는 방법은 무엇입니까?

일부는 mysql_num_rows()를 제안 할 것이라고 알고 있습니다. 난 그냥 PHP 매뉴얼 ')가 mysql_num_rows도 ('대신 다른 일부를 사용하라고 제안 것으로 나타났습니다, 내 MySQL의 버전은 5.0 :

... 

$chk = mysql_query("SELECT * FROM f_table WHERE f = '$id' AND h = 'h' AND status = '1'"); 

if(mysql_num_rows($chk) > 0){ 
    $msg = 'exist'; 
}else{ 
      $msg = 'gotta'; 
    } 

시 :

다음은 PHP 코드입니다. 그것은 관련이 있습니까?

감사합니다.

+2

왜 작동하지 않습니까? 그것해야합니다. – deceze

+3

이 코드의 사용을 중단하십시오. mysql_ 함수는 [비추천]되고있다. (http://www.deprecatedphp.com/mysql). 대신에 mysqli_ 또는 PDO를 사용해야한다. 'SELECT *'하는 것도 좋지 않습니다. 항상 열 목록을 지정하십시오. – Kermit

+1

이것은 작동 할 수 있습니다, 아마도 귀하의 SQL 문이 올바르지 않습니다 –

답변

1

일반적으로 모든 행을 가져 오는 대신에 MySQL이 계산하도록 할 수 있습니다. MySQL은 인덱스를 사용할 수 있으며 모든 데이터를 검색 할 필요가 없습니다. 훨씬 더 효율적일 수 있습니다 :

$result = mysql_query('SELECT COUNT(*) as `count` FROM ...') /* or die(mysql_error()) */; 
$row = mysql_fetch_assoc($result); 

if ($row['count'] ...) 
1

행을 사용하지 않으려면 SELECT COUNT(*) FROM ...을 사용하십시오. 그렇지 않으면이 API가 사용되지 않아도 mysql_num_rows가 작동합니다.

관련 문제