|
pg_fetch_result
Returns values from a result resource
(PHP 4 >= 4.2.0, PHP 5)
pg_fetch_result() returns the value of a particular row and field (column) in a PostgreSQL result resource.
Note:
This function used to be called pg_result(). Parameters
Return Values
Boolean is returned as "t" or "f". All
other types, including arrays are returned as strings formatted
in the same default PostgreSQL manner that you would see in the
psql program. Database
ExamplesExample 1924. pg_fetch_result() example<?php The above example will output: First field in the second row is: 2
See Also
Code Examples / Notes » pg_fetch_resultakbar
Use can use pg_fetch_result when getting a value (like a smallint as in this example) returned by your stored procedure <?php $pgConnection = pg_connect("dbname=users user=me"); $userNameToCheckFor = "metal"; $result = pg_query($pgConnection, "SELECT howManyUsersHaveThisName('$userNameToCheckFor')"); $count = pg_fetch_result($result, 0, 'howManyUsersHaveThisName'); ?> alan u. kennington
See bug #33809 http://bugs.php.net/bug.php?id=33809 Whether this really is a bug or a feature is not clear. However, it is probably best to always put your column names in extra quotes. $res = pg_query(...); $colname = pg_field_name($res, $j); pg_fetch_result($res, $i, "\"$colname\""); alan u kennington
In order to use upper case in pg_fetch_result column names, it is apparently necessary to include explicit quotation marks. Thus when I do this sort of thing: $res = pg_query(...); $ncols = pg_num_fields($res); for ($j = 0; $j < $ncols; ++$j) { $colname[$j] = pg_field_name($res, $j); $name = htmlspecialchars($colname[$j]); print("Column $j name = \"$name\"\n"); $value = htmlspecialchars(pg_fetch_result($res, 0, $colname[$j])); print("Column \"{$colname[$j]}\" value = \"$value\"\n"); } I get this sort of thing: [....] Warning: pg_fetch_result() [function.pg-fetch-result]: Bad column offset specified in /.../view.php on line 247 Column 8 name = "VEC index" Column "VEC index" value = "" But if I change the $value line to this: $value = htmlspecialchars(pg_fetch_result($res, 0, "\"$colname[$j]\"")); I get this: [...] Column 8 name = "VEC index" Column "VEC index" value[0] = "47" In my opinion, pg_fetch_result(...) should use the quotes already. In other words, this may be a bug in the PHP postgres library. It does not seem to be a documented feature of pg_fetch_result() although the postgresql manual documents it under "SQL syntax", "Lexical structure". PHP version 5.1.4. psql version 8.1.4. newby_at_nobletec_dot_com
Comment on boolean fields: If you retrieve a boolean value from the PostgreSQL database, be aware that the value returned will be either the character 't' or the character 'f', not an integer. So, the statement if (pg_fetch_result($rsRecords,0,'blnTrueFalseField')) { echo "TRUE"; } else { echo "FALSE"; } will echo "TRUE" in either case (True or False stored in the field). In order to work as expected, do this instead: if (pg_fetch_result($rsRecords,0,'blnTrueFalseField') == 't') { echo "TRUE"; } else { echo "FALSE"; } |
Change Languagepg_affected_rows pg_cancel_query pg_client_encoding pg_close pg_connect pg_connection_busy pg_connection_reset pg_connection_status pg_convert pg_copy_from pg_copy_to pg_dbname pg_delete pg_end_copy pg_escape_bytea pg_escape_string pg_execute pg_fetch_all_columns pg_fetch_all pg_fetch_array pg_fetch_assoc pg_fetch_object pg_fetch_result pg_fetch_row pg_field_is_null pg_field_name pg_field_num pg_field_prtlen pg_field_size pg_field_table pg_field_type_oid pg_field_type pg_free_result pg_get_notify pg_get_pid pg_get_result pg_host pg_insert pg_last_error pg_last_notice pg_last_oid pg_lo_close pg_lo_create pg_lo_export pg_lo_import pg_lo_open pg_lo_read_all pg_lo_read pg_lo_seek pg_lo_tell pg_lo_unlink pg_lo_write pg_meta_data pg_num_fields pg_num_rows pg_options pg_parameter_status pg_pconnect pg_ping pg_port pg_prepare pg_put_line pg_query_params pg_query pg_result_error_field pg_result_error pg_result_seek pg_result_status pg_select pg_send_execute pg_send_prepare pg_send_query_params pg_send_query pg_set_client_encoding pg_set_error_verbosity pg_trace pg_transaction_status pg_tty pg_unescape_bytea pg_untrace pg_update pg_version |