2013-10-23 2 views
0

PHP와 MySQL을 사용하여 특정 라이브 페이지를 이전 버전과 비교하기 위해 스크립트를 작성하고 있습니다. md5로 해싱하여 최신 버전과 비교하고 있습니다. . 나에게 지금 내가 ' "domain.com"일정에 대한 latest_hash의 실제의 상수를 보여줍니다mysql 쿼리를 사용하여 PHP와 데이터 비교

SELECT latest_hash FROM tracked_sites WHERE domain = 'domain.com 

:

지금 난 다음을 사용하여 특정 페이지의 최신 알려진 해시를 당기려고 해요 내가

과 비교하기 위해 노력하고있어 데이터베이스의 실제 내용을 생각하고, 지금

$latestmd5_sql=(mysqli_query($con,"SELECT latest_hash FROM tracked_sites WHERE domain = 'domain.com'")); 

: m 내가 다음을 사용하여 비교할 수 있도록 유효한 변수에 넣어 시도

if ((md5(file_get_contents("https://domain.com/page.html")))==$latestmd5_sql) 

하지만 몇 가지 이유로 나는 답을 거짓으로 처리합니다. echo/print_r을 사용하여 $ latestmd5_sql var를 인쇄하려고했으나 비어 있거나 배열이 비어있는 것처럼 보입니다. 내가 잘못하고있는 부분에 대해 의아해하고 아이디어를 얻고 싶습니다.

+2

'$ latestmd5_sql' 리소스, 데이터베이스에없는 값이됩니다. 값을 비교하려면 리소스에서 데이터를 가져와야합니다. – showdev

+0

을'$ latestmd5_sql = (mysqli_query ($ con, "SELECT latest_hash FROM tracked_sites WHERE)로 변경하십시오. [mysqli_fetch_assoc()]] (http://php.net/manual/en/mysqli-result.fetch-assoc.php) 도메인 = 'domain.com' "));'아직도 많이하지 않았다 - 나는 무엇인가 놓치고 있냐? –

+0

변경 사항이 표시되지 않습니다. 예를 들어 내 대답을 참조하십시오. – showdev

답변

0

제공된 코드에서 $latestmd5_sql은 데이터베이스의 값이 아니라 리소스가됩니다.
값을 비교하려면 리소스에서 데이터를 "가져와야"합니다.

여기에 변수 PHP로 SQL 코드에서 워크 플로우를 설명하기 위해 예입니다 :

// your sql 
$sql="SELECT latest_hash FROM tracked_sites WHERE domain = 'domain.com'"; 

// the query (returns a resource) 
$query = mysqli_query($con,$sql); 

// fetch the resulting data (this is the part you're missing) 
$result=mysqli_fetch_assoc($query); 

// take a look at the data (for debugging purposes) 
echo"DATA:<pre>".print_r($result,true)."</pre>"; 

// compare 
if ((md5(file_get_contents("https://domain.com/page.html")))==$result['latest_hash']) { 
    echo"<p>Match</p>"; 
} else { 
    echo"<p>No Match</p>"; 
} 
+0

감사합니다. $ results [ 'latest_hash]에서 사용하고있는 배열 참조가 누락되었습니다. –