Connecting Tech Pros Worldwide Forums | Help | Site Map

PEAR MDB2 - Fatal error: Call to undefined function MDB2_Driver_mssql::getMessage()

salvadorvp@gmail.com
Guest
 
Posts: n/a
#1: Feb 19 '07
Hi, I have the following code that gives me this odd error message at
a line of code inside the PEAR libraries:

"Fatal error: Call to undefined function:
MDB2_Driver_mssql::getMessage(). in C:\php\PEAR\lib\MDB2.php on line
1921"

My code is a simple submit processing form for a login page:

<?php
require_once('Database/MSSQL_Constants_TEST.php');
require_once('MDB2.php');

$dsn = array(
'phptype' ="mssql",
'hostspec' =$MY_DB_HOST,
'port' =$MY_DB_PORT,
'database' =$MY_DB_NAME,
'username' =$MY_DB_USER,
'password' =$MY_DB_PASS
);
$dbh = MDB2::connect($dsn);

if (PEAR::isError($dbh)) {
echo "An error occurred while trying to connect to the database
server.<br>\n";
echo "Error message: " . $dbh->getMessage() . "<br>\n";
echo "A more detailed error description: " . $dbh-
Quote:
>getDebugInfo() . "<br>\n";
exit();
}

// Check username and password
$result = false;
if ( isset($_POST['username']) && isset($_POST['password']) ) {
$params = array($_POST['username'], $_POST['password']);
$result = $dbh->query($WEBAPP_LOGIN_SQL, $params);

if (PEAR::isError($result)) {
echo "An error occurred while trying execute the following
query:<br>\n";
echo "$WEBAPP_LOGIN_SQL<br>\n";
echo "Error message: " . $dbh->getMessage() . "<br>\n";
echo "A more detailed error description: " . $dbh-
Quote:
>getDebugInfo() . "<br>\n";
exit();
}
}

// Forward to the resulting page
if (!$result) {
header( "Location: login.php?bad=1" );
} else {
header( "Location: portal.php" );
}

?>

I will apreciate the help!!!!


Erwin Moller
Guest
 
Posts: n/a
#2: Feb 20 '07

re: PEAR MDB2 - Fatal error: Call to undefined function MDB2_Driver_mssql::getMessage()


salvadorvp@gmail.com wrote:
Quote:
Hi, I have the following code that gives me this odd error message at
a line of code inside the PEAR libraries:
>
"Fatal error: Call to undefined function:
MDB2_Driver_mssql::getMessage(). in C:\php\PEAR\lib\MDB2.php on line
1921"
>
My code is a simple submit processing form for a login page:
>
<?php
require_once('Database/MSSQL_Constants_TEST.php');
require_once('MDB2.php');
>
$dsn = array(
'phptype' ="mssql",
'hostspec' =$MY_DB_HOST,
'port' =$MY_DB_PORT,
'database' =$MY_DB_NAME,
'username' =$MY_DB_USER,
'password' =$MY_DB_PASS
);
$dbh = MDB2::connect($dsn);
Hi,

Shouldn't that be with a &?

$dbh =& MDB2::connect($dsn);

http://pear.php.net/package/MDB2/doc...#methodconnect

Regards,
Erwin Moller
Quote:
>
if (PEAR::isError($dbh)) {
echo "An error occurred while trying to connect to the database
server.<br>\n";
echo "Error message: " . $dbh->getMessage() . "<br>\n";
echo "A more detailed error description: " . $dbh-
Quote:
>>getDebugInfo() . "<br>\n";
exit();
}
>
// Check username and password
$result = false;
if ( isset($_POST['username']) && isset($_POST['password']) ) {
$params = array($_POST['username'], $_POST['password']);
$result = $dbh->query($WEBAPP_LOGIN_SQL, $params);
>
if (PEAR::isError($result)) {
echo "An error occurred while trying execute the following
query:<br>\n";
echo "$WEBAPP_LOGIN_SQL<br>\n";
echo "Error message: " . $dbh->getMessage() . "<br>\n";
echo "A more detailed error description: " . $dbh-
Quote:
>>getDebugInfo() . "<br>\n";
exit();
}
}
>
// Forward to the resulting page
if (!$result) {
header( "Location: login.php?bad=1" );
} else {
header( "Location: portal.php" );
}
>
?>
>
I will apreciate the help!!!!
salvadorvp@gmail.com
Guest
 
Posts: n/a
#3: Feb 20 '07

re: PEAR MDB2 - Fatal error: Call to undefined function MDB2_Driver_mssql::getMessage()


Hi, thanks Erwin.

That's correct I fixed that and I also corrected the way I was reading
the error message for the $result object. But now I have a different
error. I'm trying to use a prepared query with SQL Server Express and
is not working. I'm getting this output(in error):

username: lll
An error occurred while trying to execute the following query:
select UserKey from [User] where UserName = ?
Error message: MDB2 Error: syntax error
A more detailed error description: _doQuery: [Error message: Could not
execute statement] [Last executed query: select UserKey from [User]
where UserName = ?] [Native code: 102] [Native message: Incorrect
syntax near '?'.]
Quote:
>From this piece of code:
// Check username and password
$result = false;
if ( isset($_POST['username']) && isset($_POST['password']) ) {
$username = $_POST['username'];
// $password = $_POST['password'];
echo "username: $username<br>\n";
//echo "password: $password<br>\n";

$result =& $dbh->query($WEBAPP_LOGIN_SQL, $username);

if (PEAR::isError($result)) {
echo "An error occurred while trying to execute the following
query:<br>\n";
echo "$WEBAPP_LOGIN_SQL<br>\n";
echo "Error message: " . $result->getMessage() . "<br>\n";
echo "A more detailed error description: " . $result-
Quote:
>getDebugInfo() . "<br>\n";
exit();
}
}

And the query in the global variable $WEBAPP_LOGIN_SQL is:

$WEBAPP_LOGIN_SQL = "select UserKey from [User] where UserName = ?";

So I'm thinking in appending strings to form my query (in the usual
unsafe way) and think of some regular expressions to filter out
keywords for any possible inyection attack (i.e. delete|insert|update|
etc...).


Closed Thread