It basically is. In the new /PDO command, the first 2 parms dsn &
optiions are being catenated together with a period,:

$db = new \PDO($this->dsn . $this->options, $this->username,
$this->password);

So the first parm of the PDO becomes:

odbc:DRIVER={IBM i Access ODBC
Driver};HOSTNAME=127.0.0.1;PROTOCOL=TCPIP;CCSID=1208;UID=user;PWD=password

Matt Hopkins
Project Leader
PDP Group, Inc.
10909 McCormick Road
Hunt Valley, MD 21031
Office: 410.584.0330
Fax: 410-584-0336
Cell: 410.258.8845
MWHopkins@xxxxxxxxxxxxxxx
www.pdpgroupinc.com

Confidentiality Notice: This email message is intended only for the
individual or entity to which it is addressed. This email may contain
information that is proprietary or privileged, confidential and exempt
from disclosure under applicable law. If you are not the intended
recipient, you are hereby notified that any dissemination, distribution or
copying of this communication is strictly prohibited. If you received this
email by accident, please notify the sender immediately and destroy this
email and all copies of it.




From: "Kevin Adler" <kadler@xxxxxxxxxx>
To: opensource@xxxxxxxxxxxxxxxxxx
Date: 11/16/2020 11:09 AM
Subject: Re: [IBMiOSS] PHP PDO dsn help
Sent by: "OpenSource" <opensource-bounces@xxxxxxxxxxxxxxxxxx>



I think you're putting the connection string information in the wrong
place. The hostname, ccsid, etc should all be in the dsn string like in
the second example here:
[1]https://www.php.net/manual/en/ref.pdo-odbc.connection.php


----- Original message -----
From: MWHopkins@xxxxxxxxxxxxxxx
Sent by: "OpenSource" <opensource-bounces@xxxxxxxxxxxxxxxxxx>
To: OpenSource@xxxxxxxxxxxxxxxxxx
Cc:
Subject: [EXTERNAL] [IBMiOSS] PHP PDO dsn help
Date: Mon, Nov 16, 2020 8:49 AM

I am trying to test a PHP implementation of SimpleSAMLPHP where I use
an
authorization that needs to sql a database on the IBMi. It looks like
I
have most of it set up properly, but my PDO connection fails. This is
running in an Apache server running on that same IBMi.

Here are the relevant sections of code where it fails:

'dsn' => 'odbc:DRIVER={IBM i Access ODBC Driver};',
'username' => '',
'password' => '',
'options' =>
'HOSTNAME=127.0.0.1;PROTOCOL=TCPIP;CCSID=1208;UID=user;PWD=password',

try {
$db = new \PDO($this->dsn . $this->options, $this->username,
$this->password);
} catch (\PDOException $e) {
throw new \Exception('PDPModule:'.$this->authId.': - Failed to
connect
to
\''.
$this->dsn.'\': '.$e->getMessage());
}

This is the message that I get back when I try to test it:

SimpleSAML\Error\Error: UNHANDLEDEXCEPTION
Backtrace:
1 www/_include.php:17 (SimpleSAML_exception_handler)
0 [builtin] (N/A)
Caused by: Exception: PDPModule:PDPauthinstance: - Failed to connect
to
'odbc:DRIVER={IBM i Access ODBC Driver};': could not find driver
Backtrace:
5 modules/PDPModule/lib/Auth/Source/PDPAuth.php:101
(SimpleSAML\Module\PDPModule\Auth\Source\PDPAuth::connect)
4 modules/PDPModule/lib/Auth/Source/PDPAuth.php:136
(SimpleSAML\Module\PDPModule\Auth\Source\PDPAuth::login)
3 modules/core/lib/Auth/UserPassBase.php:317
(SimpleSAML\Module\core\Auth\UserPassBase::handleLogin)
2 modules/core/www/loginuserpass.php:84 (require)
1 lib/SimpleSAML/Module.php:260 (SimpleSAML\Module::process)
0 www/module.php:10 (N/A)

I have installed the unixODBC and unixODBC-devel packages using the
Open
Source Package Management tool in ACS. I also downloaded and
installed
the
latest IBMiAccess_v1r1_PASE_AP rpm using YUM.

It appears that I am missing something to tell PHP where the driver
is.
I
have an odbcinst.ini file (in /QOpenSys/etc) that looks like this:

[IBM i Access ODBC Driver]
Description=IBM i Access ODBC Driver
Driver=/QOpenSys/pkgs/lib/libcwbodbc.so
Threading=0
DontDLClose=1
UsageCount=2

Can anyone point me in the direction of what to set to have it find
the
driver?

Matt Hopkins
Project Leader
PDP Group, Inc.
10909 McCormick Road
Hunt Valley, MD 21031
Office: 410.584.0330
Fax: 410-584-0336
Cell: 410.258.8845
MWHopkins@xxxxxxxxxxxxxxx
www.pdpgroupinc.com

Confidentiality Notice: This email message is intended only for the
individual or entity to which it is addressed. This email may contain
information that is proprietary or privileged, confidential and
exempt
from disclosure under applicable law. If you are not the intended
recipient, you are hereby notified that any dissemination,
distribution
or
copying of this communication is strictly prohibited. If you received
this
email by accident, please notify the sender immediately and destroy
this
email and all copies of it.

Confidentiality Notice: This email message is intended only for the
individual or entity to which it is addressed. This email may contain
information that is proprietary or privileged, confidential and
exempt
from disclosure under applicable law. If you are not the intended
recipient, you are hereby notified that any dissemination,
distribution
or copying of this communication is strictly prohibited. If you
received
this email by accident, please notify the sender immediately and
destroy
this email and all copies of it.
--
This is the IBMi Open Source Roundtable (OpenSource) mailing list
To post a message email: OpenSource@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: [2]https://lists.midrange.com/mailman/listinfo/opensource
or email: OpenSource-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at [3]https://archive.midrange.com/opensource .

Help support midrange.com by shopping at amazon.com with our
affiliate
link: [4]https://amazon.midrange.com




References

Visible links
1. https://www.php.net/manual/en/ref.pdo-odbc.connection.php
2. https://lists.midrange.com/mailman/listinfo/opensource
3. https://archive.midrange.com/opensource
4. https://amazon.midrange.com/

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.