|
odbc_primarykeys
Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table
(PHP 4, PHP 5)
Examples ( Source code ) » odbc_primarykeys
Code Examples / Notes » odbc_primarykeysrio bautista rrit
Sample to get the primary keys of an MSSQL table: $cn = odbc_connect( "DSN", "sa", "pwd"); $rs = odbc_primarykeys( $cn, "database", "dbo", "table_name"); odbc_result_all($rs); dan dot scott
Responding to devendra_joshi: In DB2 Universal Database for Linux, UNIX, and Windows the catalog views are accessed through the SYSCAT schema, not the SYSIBM schema -- so you should be issuing "SELECT * FROM SYSCAT.KEYCOLUSE" to list all of the columns that participate in a given key constraint. A complete list of the catalog views for DB2 can be referenced at http://publib.boulder.ibm.com/infocenter/db2help/ by searching for 'catalog views' and selecting the top hit. ewilde aht bsmdevelopment dawt com
I was trying to find the primary keys from an SQLServer database through the ODBC interface. Funnily enough, the odbc_primarykeys function doesn't work with SQLServer (at least not my implementation of it). Fortunately, the sp_keys query is passed through and the answer returned. This code works (providing you know which database you're dealing with, which is a whole 'nother story). // If this is SQLServer, we need to do a special operation to get the // primary keys. // // Looks like the implementers of the ODBC interface just blew this // one off, since the database has a query to return the info and the // info even comes back with the same column names. if ($DBType == "SQLServer") $KeySel = odbc_exec($DBConn, "sp_pkeys ".$TableName); // Otherwise, ask the database through ODBC for the primary key // names. else $KeySel = odbc_primarykeys($DBConn, $DatabaseName, $DatabaseUser, $TableName); while ($KeySel && ($KeyRec = odbc_fetch_array($KeySel))) $KeyCol[$KeyRec["KEY_SEQ"]] = $KeyRec["COLUMN_NAME"]; devendra_joshi
I want a list of primary keys of a table in db2 by using 'select * from SYSIBM.SYSKEYCOLUSE ' query i am getting the result on CLP but when i am writing it in PHP as follows it returns 0 ROWS. $mstmt="select * from SYSIBM.SYSKEYCOLUSE"; $b=odbc_exec($conn,$mstmt); echo odbc_result_all($b); where as if we write this code $mstmt="select * from SYSIBM.SYSFUNCTIONS"; $b=odbc_exec($conn,$mstmt); echo odbc_result_all($b); it returns the correct data. |
Change Languageodbc_autocommit odbc_binmode odbc_close_all odbc_close odbc_columnprivileges odbc_columns odbc_commit odbc_connect odbc_cursor odbc_data_source odbc_do odbc_error odbc_errormsg odbc_exec odbc_execute odbc_fetch_array odbc_fetch_into odbc_fetch_object odbc_fetch_row odbc_field_len odbc_field_name odbc_field_num odbc_field_precision odbc_field_scale odbc_field_type odbc_foreignkeys odbc_free_result odbc_gettypeinfo odbc_longreadlen odbc_next_result odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_primarykeys odbc_procedurecolumns odbc_procedures odbc_result_all odbc_result odbc_rollback odbc_setoption odbc_specialcolumns odbc_statistics odbc_tableprivileges odbc_tables |