Thread: PEAR Problem
Hi, It's me again. I have been able to solve most of the porting problems from mysql to pgsql. But I have got struck in one place. I have a problem where PEAR's associative array doesn't recognise the mix case letters. eg . I issue a query through PEAR db and get results using fetchRow of PEAR. Now I have set associative array feature ON. suppose the query is select NetCode,NetworkName from NetworkTab; this would return the result into a variable called $dbRow to echo the contents returned by the pgsql, I have to give $dbRow[NetCode] and $dbRow[NetworkName] This used to work perfectly fine with mysql, but as I moved to pgsql, PEAR started to return nothing like if i echo $dbRow[NetCode] it prints nothing but in the same echo is I change it echo $dbRow[netcode], it prints the value of the Network Code. How do I handle this situation. The application is fully written with Mix Case letters for the database fields and returned result set. And one more thing "SET AUTOCOMMIT=0" which is to set auto commiting to "No" in mysql doesn't work in pgsql what is the equivalent command. -- Best regards, Gurudutt mailto:guru@indvalley.com Life is not fair - get used to it. Bill Gates
Hi, maybe this problem isn't originated in PEAR, but in pg itself. Postgres folds everything to lowercase except one within "" (doublequotes). So, if you - ie.: in psql: psql=# CREATE TABLE veRYMixedCAse (NetCode integer,...); then actually you will create a table named 'verymixedcase'. In PHP (PEAR actually) you need to refer to this table and its columns in lowercase. You may run psql and execute: \dt -- to figure out what names to be given to your tables and then \d NetworkTab or \d networktab -- and what names of the columns have ----- Original Message ----- From: "Gurudutt" <guru@indvalley.com> To: <pgsql-sql@postgresql.org> Cc: <pgsql-php@postgresql.org> Sent: Monday, October 08, 2001 2:37 PM Subject: [PHP] PEAR Problem > Hi, > > It's me again. I have been able to solve most of the porting problems > from mysql to pgsql. But I have got struck in one place. I have a > problem where PEAR's associative array doesn't recognise the mix case > letters. > > eg . I issue a query through PEAR db and get results using fetchRow of > PEAR. Now I have set associative array feature ON. > > suppose the query is > > select NetCode,NetworkName from NetworkTab; > > this would return the result into a variable called $dbRow > > to echo the contents returned by the pgsql, I have to give > $dbRow[NetCode] and $dbRow[NetworkName] > > This used to work perfectly fine with mysql, but as I moved to pgsql, > PEAR started to return nothing > > like if i echo $dbRow[NetCode] it prints nothing > > but in the same echo is I change it echo $dbRow[netcode], it prints > the value of the Network Code. > > How do I handle this situation. The application is fully written with Mix Case > letters for the database fields and returned result set. > > And one more thing "SET AUTOCOMMIT=0" which is to set auto commiting > to "No" in mysql doesn't work in pgsql what is the equivalent command. > > -- > Best regards, > Gurudutt mailto:guru@indvalley.com > > Life is not fair - get used to it. > Bill Gates > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html
This is caused by the fact that PostgreSQL is case insensitive. In order for it to actually take the case into account, you need quote your field names and table names. So your query would then be: select "NetCode","NetworkName" from "NetworkTab"; Then you would be able to access the fields with $dbRow[NetworkName]. -Dan : Hi, : : It's me again. I have been able to solve most of the porting problems : from mysql to pgsql. But I have got struck in one place. I have a : problem where PEAR's associative array doesn't recognise the mix case : letters. : : eg . I issue a query through PEAR db and get results using fetchRow of : PEAR. Now I have set associative array feature ON. : : suppose the query is : : select NetCode,NetworkName from NetworkTab; : : this would return the result into a variable called $dbRow : : to echo the contents returned by the pgsql, I have to give : $dbRow[NetCode] and $dbRow[NetworkName] : : This used to work perfectly fine with mysql, but as I moved to pgsql, : PEAR started to return nothing : : like if i echo $dbRow[NetCode] it prints nothing : : but in the same echo is I change it echo $dbRow[netcode], it prints : the value of the Network Code. : : How do I handle this situation. The application is fully written with Mix Case : letters for the database fields and returned result set. : : And one more thing "SET AUTOCOMMIT=0" which is to set auto commiting : to "No" in mysql doesn't work in pgsql what is the equivalent command. : : -- : Best regards, : Gurudutt mailto:guru@indvalley.com : : Life is not fair - get used to it. : Bill Gates : : : ---------------------------(end of broadcast)--------------------------- : TIP 5: Have you checked our extensive FAQ? : : http://www.postgresql.org/users-lounge/docs/faq.html :