Re: String comparision issue with change of databases

From: Date: Fri, 23 Nov 2007 12:12:55 +0000
Subject: Re: String comparision issue with change of databases
References: 1  Groups: php.db 
Request: Send a blank email to php-db+get-44358@lists.php.net to get a copy of this message
Tamkhane, Pravin wrote:
Hi All, I am trying to write a simple user verification(not using MD5 hash) . I have users table in database which contains login_id and passwd for registered users. I am using PDO for this purpose. If i use MySQL database, following code for user verification works well without any problem. But if change $dsn to use PostgreSQL database, code fails at if( $passwd === $records[0]['passwd']). After some experiementation, I realized that $passwd holds password string ( assume '1234' for time being) In case of MySQL $records[0]['passwd'] holds password string '1234' as expected and code works. But in case of PostgreSQL, $records[0]['passwd'] holds 1234 rather than '1234' and hence comparison fails. Since I am using same code to register users in both cases, I doubt there would be any issue there.
You're using === which does a type *and* value comparison. I'm guessing that the MySQL driver does the conversion to an integer, whereas the PostgreSQL driver doesn't. Change it to == and it'll work just fine. -Stut -- http://stut.net/

« previous php.db (#44358) next »