PHP 4.0 Bug #7141: pg_exec returns true even though it failed
| From: | dbi at xmission dot com | Date: | Wed, 11 Oct 2000 21:26:37 +0000 |
| Subject: | PHP 4.0 Bug #7141: pg_exec returns true even though it failed | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-34715@lists.php.net to get a copy of this message | ||
From: dbi@xmission.com
Operating system: Redhat Linux 6.2
PHP version: 4.0.2
PHP Bug Type: PostgreSQL related
Bug description: pg_exec returns true even though it failed
When I execute the following code segment with the $EmailAddress and $Password variables set to
values that exist in the PostgreSQL 6.5.3 table, everything works fine.
When I execute it with values that are NOT in the table, pg_exec still returns a "true"
value even though the SELECT statement never found any matching rows. (This is contrary to what the
documentation implies when it tests for !$result.)
The actual value of the $query variable, even when the query sent by the pg_exec function fails, is
"Resource id #2". Because it's not falst, there's no way to test whether the
query succeeded. So when the program goes on to execute the pg_fetch_array function, the $query
variable points to nothing and the program dies with an error message.
-------------------------------
<?php
// -- This module checks a username and password to see who the user is.)
$db = pg_connect("", "", "", "", "tracker");
if ($db) {
$SQLQuery = "SELECT userid FROM users WHERE username = '" . $EmailAddress .
"' AND password = '" . $Password . "';";
$query = pg_exec($db, $SQLQuery);
if ($query) {
$row = 0;
if ($data = pg_fetch_array($query, $row)) {
// Etc...
--
Edit Bug report at: http://bugs.php.net/?id=7141&edit=1