Sybase Functions for PHP4 On LINUX
원본출처 : http://hanol.kaist.ac.kr/sybase.html
sybase_affected_rows 마지막 쿼리에 영향받는 row 수를 구합니다
sybase_close 연결을 종료합니다
sybase_connect 서버에 연결을 오픈합니다
sybase_data_seek 내부 row 포인터를 옮깁니다.
sybase_fetch_arry row를 배열로 패치해 옵니다.
sybase_fetch_field 필드 정보를 구합니다.
sybase_fetch_object row를 객체로 패치해 옵니다.
sybase_fetch_row row를 indexed 배열로 패치해 옵니다.
sybase_field_seek 필드 오프셋을 정의합니다.
sybase_free_result 결과 메모리를 반환합니다.
sybase_num_fields 결과의 필드 수를 구합니다.
sybase_num_rows 결과의 row 수를 구합니다.
sybase_pconnect sybase 서버 영구 연결을 오픈 합니다.
sybase_query sybase 쿼리를 전송합니다.
sybase_result 결과 데이터를 구합니다.
sybase_select_db sybase 데이터베이스를 선택합니다.
sybase_affected_rows
사용방법
int sybase_affected_rows(int link_identifier)
마지막 쿼리에 영향받은 row 수를 리턴합니다. 즉 link identifier로 지정한 연결에서 마지막으로 생성한 Isert, Update, Delete 쿼리에 영향을 받은 row 수를 구합니다. 이 때 마지막으로 연결한 link를 사용합니다. 이 명령은 Select 문에서는 사용할 수 없고,레코드를 수정하는 쿼리에서만 사용할 수 있습니다. Select 문의 결과 row 수를 구하려면 sybase_num_rows()함수를 사용합니다.
주) 이 함수는 sybase에대한 CT라이브러리 인테페이스를 사용할 때만 사용 가능합니다.
sybase_close
사용방법
int sybase_close(int link_indentifier)
sybase 연결을 종료합니다. 즉 link_identifier로 지정한 sybase 데이터베이스에 대한 연결을 종료합니다. 성공하면 true를 리턴하고 에러가 발생하면 false를 리턴 합니다. 이때 link_indentifier를 생략하면 마지막으로 연결한 link를 종료하는데, 이 함수는 일반적으로 호출괼 필요가 없습니다. 그 이유는 스크립트실행이 종료될 때 모든 연결이 자동으로 종료되기 때문입니다
관련함수 sybase_connect(), sybase_pconnect().
sybase_connect
사용방법
int sybase_connect(string servername, string username, string pass-word)
sybase 서버 연결을 오픈합니다. 성공하면 sybase link indentifier를 리턴하고 에러가 발생하면 false를 리턴 합니다. servername 매개변수는 인터페이스 파일에 정의되어 있는 올바른 서버네임이어야 합니다. 같은 매개 변수를 사용해서 다시 sybase_connect()함수를 호출하면 새로운 link가 생성되지 않고 이미 오픈괴어 있는 연결의 link_identifier를 리턴합니다. 서버로의 연결은 스크립트 실행이 종료될 때 자동으로 종료합니다.
관련함수 sybase_pconnect(), sybase_close()
sybase_data_seek
사용방법
int sybase_data_seek(int result_identifier, int row_namber)
내부 row포인트 옮깁니다. 즉 Sybase 결과의 내부 row 포인트를 row_number로 지정한 위치로 옮깁니다. 성공하면 true를 리턴하고 실패하면 false를 리턴합니다. 이후의 sybase_fetch_row() 함수는 이 row를 리턴합니다.
관련함수 sybase_data_seek()
sybase_fetch_array
사용방법
int sybase_fetch_array(int result)
패치해 온 row를 배열로 리턴합니다. 더 이상 패치해 올 row가 없으면 false를 리턴합니다. 이 함수는 sybase_fetch_row() 함수의 확장 버전입니다. 즉 row를 순서대로 indexed 배열로 읽어옴과 동시에 이 배열에 field 이름을 associative 배열 인덱스로 하는 요소를 추가로 리턴합니다. 여기서 고려해야 할 사항은 sybase_fetch_arry() 함수의 수행 속도가 sybase_fetch_row() 함수의 수행속도에 비해서 그리 느리지 않다는 점입니다. 반면에 리턴되는 값은 더 많습니다. 좀더 자세한 사항은 sybase_fetch_row() 함수를 참고합니다.
sybase_fetch_field
사용방법
int sybase_fetch_field(int result, int field_offset)
필드 정보로 구성된 객체를 리턴 합니다. 즉 쿼리 결과에 있는 필드 정보를 구하는 데 사용 합니다. field offset을 생략하면 sybase_fetch_field() 함수에 의해 읽어질 field의 정보를 리턴합니다. 리턴되는 객체의 속성은 다음과 같습니다..
name 칼럼명, 갈럼이 function의 결과이면 이속성은 computed#N(N은 시리얼 번호)이 됩니다
column_source 칼럼이 속하는 테이블
max_length 칼럼의 최대 길이
numeric 칼럼이 숫자 값 칼럼이면 1
관련함수 sybase_field_seek()
sybase_fetch_object
사용방법
int sybase_object(int result)
row를 객체로 패치해 옵니다. 패치해온 row에 해당하는 객체를 리턴하며, 더 이상 패치해 올 row가 없으면 false를 리턴합니다. 이 함수는 sybase_fetch_array()와 비슷하지만 한 가지 차이점이 있습니다. 즉 배열 대신 객체가 리턴되는데, 이는 필드 데이터를 읽어올 때 필드 offset 대신 반듯이 필드명만 사용할 수 있다는 뜻입니다(번호는 객체의 속성이 될 수 없습니다). 속도면에서 이 함수는 sybase_fetch_array()와 동일하고 sybase_fetch_row() 만큼 빠릅니다(속도 차이는 거의 없다고 볼 수 있습니다).
관련함수 sybase_fetch_array(), sybase_fetch_row()
sybase_fetch_row
사용방법
int sybase_row(int result)
row를 indexed 배열로 패치해 옵니다. 패치해 온 row를 배열로 리턴하며, 더 이상 패치해 올 row가 없으면 false를 리턴합니다. 즉 이 함수는 result(결과 id)로 지정한 결과에서 row가 없으면 false를 리턴합니다. 읽어온 row는 배열로 리턴되며, 각 결과 칼럼은 배열에 0부터 시작해서 오프셋으로 저장됩니다. sybase_fetch_row() 함수를 false가 리턴될 까지 계속해서 호출하면 결과의 모든 row에 접근할 수 있습니다.
관련함수 sybase_fetch_array(), sybase_fetch_object(), sybase_data_seek(), sybase_fetch_lengths(), sybase_result()
sybase_field_seek
사용방법
int sybase_field_seek(int result, int field_offset)
field_offset으로 지정한 위치로 현재 필드 포인트를 옮깁니다. 이 후에는 sybase_fetch_field() 함수를 호출하면 이 필드가 리턴됩니다.
관련함수 sybase_fetch_field()
sybase_field_result
사용방법
int sybase_field_result(int result)
결과 메모리를 반환합니다. 즉 스크립트가 실행되는 동안 너무 많은 메모리를 사용할 것 같은 우려가 있을 경우 사용합니다. 스크립트가 종료될 때 모든 메모리는 자동으로 반환됩니다. 또한 이 함수는 result(결과 id)로 지정한 결과에 관련괸 모든 메모리를 삭제합니다.
sybase_num_fields
사용방법
int sybase_num_fields(int result)
result(결과 id)에 있는 필드 수를 리턴합니다.
관련함수 sybase_db_query(), sybase_query(), sybase_fetch_field()
sybase_num_rows()
sybase_num_rows
사용방법
int sybase_num_rows(string result)
result(결과 id)로 지정한 결과에 있는 row 수를 리턴합니다.
관련함수 sybase_db_query(), sybase_query(), sybase_fetch_row()
sybase_pconnect
사용방법
int sybase_pconnect(string servername,string username, string password)
sybase 서버 영구 연결을 오픈합니다. 성공하면 연결 id를 리턴하고 에러가 발생하면 false를 리턴합니다. 이함수는 sybase_connect()와 거의 동일하게 동작하지만 2가지 차이점이 있습니다.
첫 번째 차이점은 연결할 때 이 함수는 먼저 이미 존재하는 같은 매개변수(host, sername, password)로 오픈된 (영구)연결을 찾습니다. 찾을 경우 새로운 연결을 생성하지 않고 이 id를 리턴합니다. 두 번째 차이점은 스크립트가 종료할 때 SQL 서버로의 연결을 종료하지 않습니다. 이연결은 이후의 사용을 위해서 계속 남아 있게 됩니다(sybase_close() 함수는 sybase_pconnect() 함수로 오픈한 연결을 종료시키지 못합니다).
sybase_query
사용방법
int sybase_query(string query, int link_identifier)
Sybase 쿼리를 전송합니다. 즉 link_identifier로 연결된 서버의 데이터베이스에 쿼리를 실행합니다. 성공하면 sybase 결과 id를 리턴하고 에러가 발생하면 false를 리턴합니다. link_identifier를 생락하면 마지막으로 오픈한 연결을 사용합니다. 오픈된 link가 없으면 sybase_connect() 함수를 매개 변수 없이 호출했을 때와 같이 연결을 시도합니다.
관련함수 sybase_db_query(), sybase_select_db(), sybase_connect()
sybase_result
사용방법
int sybase_result(int result, int row mixed field)
결과 데이터를 구합니다. 즉 result(결과 id)로 지정한 결과의 row와 field에 위치한 cell의 내용을 리턴합니다. 이 때 field 매개변수는 필드의 오프셋으로 지정해도 되고 필드명 또는 필드명과 테이블의 조합(테이블명, 필드 명)으로 지정해도 됩니다. 칼럼명이 alias된
('select foo as bar from') 이름일 경우 칼럼명 대신 alias 된 이름이 사용됩니다.
큰 결과 셋에서 작업을 할 경우 모든 row를 읽어오는 함수를 사용할 것을 권장합니다. 이 함수들은 한 번에 여러개의 cell을 읽어오기 때문에 sybase_result()함수 보다 훨씬 빠릅니다. 또한 필드명으로 cell 위치를 지정한 것보다 필드 오프셋을 사용하는 것이 훨씬 빠릅니다.
높은 퍼포먼스를 위한 추천사항 : sybase_fetch_row(), sybase_fetch_array()
sybase_fetch_object()
sybase_select_db
사용방법
int sybase_select_db(string database_name,int link_identifier)
sybase 데이터베이스를 선택합니다. 즉 link_identifier로 지정한 서버로의 연결에서 현재 활성화된 데이터베이스를 database_name으로 지정합니다. 성공하면 true를 리턴하고 에러가 발생하면 false를 리턴합니다. link_identifier를 생략하면 마지막으로 오픈한 연결이 사용됩니다. 이후의 모든 sybase_query() 함수는 이 데이터베이스에 대해 실행됩니다.
관련함수 sybase_connect(), sybase_pconnect(), sybase_query()
|