2014-12-08 4 views
0

해시 코드를 잘 출력 할 수 있습니다. 그런 다음 데이터베이스의 값을 확인하면 정상적으로 일치합니다. 하지만, 내가 get_user_id를 실행할 때 - 아무것도 나오지 않습니다. 나는 프로그래밍에 상당히 익숙하지 않기 때문에 누군가가 그것을 지적 할 수 있기를 바랍니다.PHP에서 SQL 쿼리가 비어 있습니다.

include("internals\config.php"); // DB info 

$host  = DB_HOST; 
$user  = DB_USER; 
$password = DB_PASS; 
$dbname  = DB_NAME; 
$prefix  = DB_TBL_PREFIX; 

define('TBL_MAILBOX_CONVERSATION', $prefix.'mailbox_conversation'); 
define('TBL_MAILBOX_MESSAGE', $prefix.'mailbox_message'); 

$cxn = mysql_pconnect ($host, $user, $password); 

mysql_select_db($dbname, $cxn); 

$hash = ($_COOKIE['PHPSESSID']!='' ? $_COOKIE['PHPSESSID'] : 'Guest'); 

function get_user_id() 
    { 
     $userid = NULL; 

     if (!empty($hash)) 
     { 
      $result = mysql_query("SELECT `profile_id` FROM `skadate_profile_online` WHERE `hash` = '".$hash."' "); 

      if ($row = mysql_fetch_array($result)) 
      { 
       $userid = $row[0]; 
      } 
     } 

     return $userid; 
    } 

$profile_id = get_user_id(); 
print $profile_id; 
+0

[가변 범위] (http://php.net/manual/en/language.variables.scope.php)에서 확인하십시오. 힌트 :'get_user_id_by_hash ($ hash) {....}'함수를 정의하고 싶을 수도 있습니다. – Wrikken

+0

당신이 이미이 글을 게시했습니다. http://stackoverflow.com/q/27340893/ 추가 Ajax. –

+0

또한 해당 기능에서 연결이 필요합니다. – Mihai

답변

0

당신은) ($hash 변경

get_user_id()

$profile_id = get_user_id(); 

$profile_id = get_user_id($hash); 
+0

전 세계 변수를 만드는 것이 더 이상 좋은 생각이 아닌 것 같아요 ....? – Martin

+0

확실하지 않습니까? 나는 global $ hash를 사용했다; 문제가 해결되었습니다. – zaphieon

+0

전역을 사용하는 것은 좋지 않습니다. – Pupil

1

기능 get_user_id에 전달되지 않습니다 $ hash는 값이 함수에 전달되지 않으므로 항상 비어 있습니다. 또한

, Mysqli -

고정 :

$profile_id = get_user_id($hash); 

편집 : 당신이 코드를 실행하면

function get_user_id($funcHash) 
    { 
     $userid = NULL; 

    if (!empty($funcHash)) 
    { 
     $result = mysql_query("SELECT `profile_id` FROM `skadate_profile_online` WHERE `hash` = '".$funcHash."' "); 

     if ($row = mysql_fetch_array($result)) 
     { 
      $userid = $row[0]; 
     } 
    } 

    return $userid; 
} 

그래서 당신이 함수에 $ 해시 값을 전달 점 1 - 표준 MySQL 대신 MySQLi를 사용해보십시오. 이제는 더 이상 사용되지 않습니다.

point 2 쉽게 혼란 스러울 수 있으므로 함수의 $ hash 변수를 고의로 변경 했으므로 함수의 컨텍스트에서 $ 해시가 있고 파일 컨텍스트에서 다른 변수 $ hash가 있으므로 함수 하나는 $ funcHash로 이름이 변경되었습니다.

+0

실제로 도움이되었지만 단순히해야 할 일은 "global $ hash;"를 추가하는 것입니다. - 그러나 그것이 0이라는 것을 지적 해 주셔서 고맙습니다. 그것이 문제였습니다. – zaphieon

관련 문제