Can anybody take a look into this, please? Thanks, Nuno
> ID: 28994 > User updated by: bas at vanklinkenbergsoftware dot nl > Reported By: bas at vanklinkenbergsoftware dot nl > Status: Open > Bug Type: Documentation problem > Operating System: N/A > PHP Version: 4.3.7 > New Comment: > > All right, some more investigation shows me that when using lower case > column names, all works well. When using mixed case column names, using > a string as the third argument generates the 'Bad Column Offset' error. > See code snippet below. Note that fieldnames are correctly retrieved > with pg_field_name(). > > $db_conn = pg_connect("host = localhost port = 5432 dbname = test > user = test password = test"); > $result = pg_query($db_conn, 'SELECT * FROM test'); > echo "table column index 0, has a lower case name, works > fine:<br>\n"; > $fieldname = pg_field_name($result, 0); > echo "fieldname: $fieldname <br>\n"; > $fieldlength = pg_field_prtlen($result, 0, 0); > echo "fieldlength: $fieldlength <br>\n"; > $fieldlength2 = pg_field_prtlen($result, 0, $fieldname); > echo "fieldlength: $fieldlength2 <br>\n"; > > echo '<br>table column index 1, has a mixed case name, generates > e_notice and empty fieldlength:<br>\n'; > $fieldname = pg_field_name($result, 1); > echo "fieldname: $fieldname <br>\n"; > $fieldlength3 = pg_field_prtlen($result, 0, 1); > echo "fieldlength: $fieldlength3 <br>\n"; > $fieldlength4 = pg_field_prtlen($result, 0, $fieldname); > echo "fieldlength: $fieldlength4 <br>\n"; > > You can test the code above at this url: > http://212.61.21.72/test/pg_field_prtlen_test.php > > The database table used in the above code looks like this: > ============== > Welcome to psql 7.3.4-RH, the PostgreSQL interactive terminal. > > You are now connected to database test as user test. > test=> select * from test; > first_column | Second_Column > --------------+---------------- > 1 | some text > 2 | some more text > (2 rows) > > test=> > ============ > > Appearantly it looks like there are two problems: the documentation > problem, where the possibility to pass an int as the third argument is > not documented, and the error that occurs when using mixed case column > names. Should I file the latter as a separate bug? > > Regards, > Bas > > > Previous Comments: > ------------------------------------------------------------------------ > > [2004-07-02 23:17:01] [EMAIL PROTECTED] > > What I can see in the sources is that the proto is: > > int pg_field_prtlen(resource result, [int row,] mixed > field_name_or_number > > > Row is optional and the last parameter can be either a string or an > integer. If it's passed as string, it is recongnised as the field name, > otherwise as the field number. > > I've never used PostgreSQL, so can you or somebody confirm if the > function is behaving as I've stated, please?? > > Thanks, > Nuno > > ------------------------------------------------------------------------ > > [2004-07-02 15:50:02] bas at vanklinkenbergsoftware dot nl > > Description: > ------------ > In the online documentation for pg_field_prtlen, the function > arguments are described as follows: > > int pg_field_prtlen (resource result, int row_number, string > field_name) > > but actually it should be: > > int pg_field_prtlen (resource result, int row_number, int > column_number) > > (The third argument should be column number instead of field name). > When using pg_field_prtlen as stated in the online documentation, a > 'Bad Column Offset' error is generated. > > > > ------------------------------------------------------------------------ > > Edit this bug report at http://bugs.php.net/?id=28994&edit=1 -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php