2013-01-17 2 views
-1

rand_id() 함수를 호출하는 데 문제가 있습니다. 여기에 ......사용자 정의 함수가 PHP에서 작동하지 않습니다

<?php 
try 

{ 

$config=array(
'DB_USERNAME'=>'root', 
'DB_PASSWORD'=>''); 


$conn=new PDO('mysql:host=localhost;dbname=scc',$config['DB_USERNAME'],$config['DB_PASSWORD']); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

echo rand_id(); 

} 

catch(Exception $e) 
{ 
echo 'error: '.$e->getMessage(); 
} 

function rand_id() 
{ 

$id=rand(100,103);   //i have record with id ='100' 
$results=$conn->query("select id from student_personal_info where id='".$id."'"); 

if($results->rowCount()>0) 
{ 
rand_id(); 
} 
else 
{ 
return "this is unique id"; 
} 
} 
?>   

같은 코드는하지만 기능을 제거하고 제대로 작동이 코드를 확인하지만 지금은 내가 데이터베이스를 확인 후 고유 ID 메시지를 생성 할 수없는 경우 ... PLZ 도움이

여기 $connrand_id() 기능의 범위를 벗어 데이터베이스 오브젝트 기능

<?php 

try 
{ 
$config=array(
'DB_USERNAME'=>'root', 
'DB_PASSWORD'=>''); 

$conn=new PDO('mysql:host=localhost;dbname=scc',$config['DB_USERNAME'],$config['DB_PASSWORD']); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 


$id=rand(100,103);   //i have record with id ='100' 
$results=$conn->query("select id from student_personal_info where id='".$id."'"); 

if($results->rowCount()>0) 
{ 
echo "generate again"; 
} 
else 
{ 
echo "this is unique id"; 
} 
} 
catch(Exception $e) 
{ 
echo 'error: '.$e->getMessage(); 
} 

?>   
+1

구체적으로 문제 또는 오류가 무엇입니까?! – deceze

+0

의미있는 들여 쓰기로 코드를 다시 포맷 하시겠습니까? –

+0

쿼리에서 함수를 분리하고 값을 반환하여 함수 밖에서 검사하도록하십시오. –

답변

2

를 제거한 후 다른 코드입니다.

function rand_id($conn) 
{ 
    // ... 
} 

을 또는 global 방법을 사용하십시오 : 당신은 인수로 전달할 수

function rand_id() 
{ 
    global $conn; 
    // $conn is now accessible 
} 

더 많은 정보에 대한 Variable Scope on the Manual합니다.


향후 디버깅을 위해 오류 로그를 확인하십시오. 이 경우 다음과 같은 것이 있어야합니다.

Fatal Error: Call to a member function query() on a non-object in ...

+0

작동 중 .. !!! 고마워요. :) –