2011-02-07 4 views
1

누구든지 oci_bind_by_name 사용에 대해 안내 할 수 있습니까? 이 코드를 작성했습니다 :oci_bind_by_name이 (가) PHP에서 작동하지 않습니다.

$connection = initDB(); 
$validation_query = "SELECT * from admin where admin_id= :uid and password= :pwd"; 
$s = oci_parse($connection, $validation_query); 
oci_bind_by_name($s, ':uid', $id); 
oci_bind_by_name($s, ':pwd', $pass); 
$res=oci_execute($s, OCI_DEFAULT); 
$result_row = oci_fetch_array($s, OCI_ASSOC); 

코드를 약간 수정하고 즉시 쿼리를 생성하면 작업이 시작됩니다.

$connection = initDB();  
$validation_query = "SELECT * from admin where admin_id= '".$id."' and password= '".$pass."'"; 
$s = oci_parse($connection, $validation_query); 
//oci_bind_by_name($s, ':uid', $id); 
//oci_bind_by_name($s, ':pwd', $pass); 
$res=oci_execute($s, OCI_DEFAULT); 
$result_row = oci_fetch_array($s, OCI_BOTH); 

나는 이것에 대해 전혀 모르며 이미 포럼과 인터넷을 검색했습니다. 친절하게 도와주세요.

+0

어떻게 작동하지 않습니까? 어떤 PHP와 Oracle 버전을 사용하고 있습니까? – richsage

+0

oci_bind_by_name이 작동하지 않습니다. 두 번째 코드가 작동하는 동안 첫 번째 코드가 작동하지 않습니다. PhP 버전 5.2 및 Oracle10g –

+0

oci_bind_by_name이 "작동하지 않습니다."- 정확하게 * 어떻게 * 작동하지 않습니까? 오류가 발생하거나 작동하지만 쿼리가 아무것도 반환하지 않거나 쿼리가 오류를 반환하거나 ..... – richsage

답변

0

GOT IT! 귀찮게해서 미안 ... 바보 같은 실수를 저질렀습니다.

코드 줄 : $result_row = oci_fetch_array($s, OCI_BOTH)이 두 코드에서 실행되고있었습니다. 그러나 두 번째 시나리오에서 $result_row[0]은 첫 번째 시나리오에서 $result_row[0]으로 실패한 값을 반환했습니다.

다른 모드로 데이터를 가져 왔기 때문에 다시 나타납니다. 첫 번째 경우는 OCI_ASSOC이고 두 번째 경우는 OCI_BOTH입니다.

마지막으로 $result_row['ID']을 작성하면 원하는 결과가 나타납니다.

건배!

관련 문제