Connect IBM database using PDO - php

I tried connect IBM database through PDO using below code. But, it is not working
try {
$db = new PDO("odbc:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=BLUDB;HOSTNAME=hostname;PORT=50000;PROTOCOL=TCPIP;", "username", "password");
echo "<pre>";
print_r($db);
exit;
} catch (PDOException $e) {
echo $e->getMessage();
}
I got below error for the same
SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
I have also added below code in php.ini file
extension=php_pdo.dll
extension=php_pdo_ibm.dll
extension=php_ibm_db2.dll
Could anyone suggest me, how I can connect with IBM database?

The DSN prefix for DB2 databases is ibm:, not odbc:. Try changing that.
Here is the example connection string given in the documentation:
$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
"HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");

there is different driver name for some computer, this is the list of driver you can try:
DRIVER={iSeries Access ODBC Driver};
DRIVER={IBM i Access ODBC Driver};
and try to use System instead of HOSTNAME
DRIVER={iSeries Access ODBC Driver};DATABASE=BLUDB;System=hostname;PORT=50000;PROTOCOL=TCPIP;
oh, and I'm using DRIVER={IBM i Access ODBC Driver};

Related

How to set up an ODBC for MS Access 2016?

I am fairly new to databases and also my English is very bad so don't mind my silly mistakes. I am using:
MS Access 2016 to create a local database named as tc.accdb
XAMPP to provide local host connectivity
this php code to check whether local connectivity is achieved or not:
<?php
$con = odbc_connect( "tc" , "" , "" );
if($con)
{
echo "Connected";
}
else
{
echo "Failed" ;
}
?>
But I just cannot set up Microsoft Access driver for my database. Under administrator tools >.....> System DSN, there exist Microsoft Access driver for (*.mdb) .But since I'm using Access 2016, my database has (.accdb) extension.
I've also tried saving my database as (database.mdb) to avoid extension confilicts but I've used some Office16-specific features so it can't be saved as a database with (.mdb) extension.
Note
Using (.mdb) connectivity with my (.accdb) database just didn't do the job as when I try to run the check code it gives me following error.
try this
$connStr = 'odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};' .
'Dbq=C:\\Users\\Igor\\Desktop\\example.accdb;';
$dbh = new PDO($connStr);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
good luck

PHP Cannot connect to PDO ODBC Driver

My php cannot find my odbc driver. I've downloaded and re-installed multiple times. Can anyone help me with this error:
QLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data
source name not found and no default driver specified"
Here is my php code:
$dbName = "C:\Users\David\Documents\SCHOOLNEW\Assignment5-PROG1800\database\as4.mdb";
if (!file_exists($dbName))
{
die("Could not find database file.");
}
try
{
// Connect
$dbh = new PDO("odbc:Driver={Microsoft Access Driver(*.mdb, *.accdb)};Dbq=C:\Users\David\Documents\SCHOOLNEW\Assignment5-PROG1800\database\as4.mdb;Uid=Admin");
// INSERT data
$count = $dbh->exec("INSERT INTO part(vendorNo,description,onHand,onOrder,cost,listPrice) VALUES ('$vendorNo', '$desc', '$onHand', '$onOrder', '$cost', '$listPrice')");
// echo the number of affected rows
echo $count;
// close the database connection
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
I'm running php with apache on xampp. This all on a local machine. My system is 64 bits. I'm not sure if it has something to do with the system and drive types or my syntax or certain drivers I need to install. I just want to insert data from my form into the database on my computer.
Driver={Microsoft Access Driver(*.mdb, *.accdb)}
is not a valid ODBC driver name because it is missing a space. The correct name for the newer "ACE" ODBC driver is
Driver={Microsoft Access Driver (*.mdb, *.accdb)}
However, in this case PHP is running in the 32-bit environment and trying to open an .mdb database so the older "Jet" ODBC driver ...
Driver={Microsoft Access Driver (*.mdb)}
... will work, too.
Can you place the path after escaping the slashes and then try:-
$dbName = "C:\\Users\\David\\Documents\\SCHOOLNEW\\Assignment5-PROG1800\\database\\as4.mdb";
Escape the slashes in all the paths you have provided in the code and then try.

Having trouble with ODBC Driver for Access database

I have created an intranet php site using WampServer on my home test environment where everything works fine. I then tried to install it on the production server, again with WampServer installed, but when I try to connect to the database, I get an error:
ERROR: SQL STATE[IM002] SQLDriverConnect:0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.
I have the php_pdo_odbc extension enabled.
Here is the code I'm having trouble with:
$dbName2013 = $_SERVER["DOCUMENT_ROOT"] . "/Ridley/RLCompRepair.accdb";
try {
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};;Dbq=$dbName2013");
}
catch (Exception $e) {
echo "ERROR: ".$e->getMessage();
}
Any and all help would be greatly appreciated.
Chris
You are trying to connect with DNS-less database.
create a Windows ODBC DNS
In Windows go to "Administrative Tools" and Select "Data Sources"
Go to File DSN select Add
select Microsoft Access Driver (*.mdb)
Select Next, type in a Data source Name
select "Next" then Finish
You should be in ODBC Microsoft Access Setup
select "Select" navigate to your .mdb and select it.
select "OK"
In your PHP try this:
$connect = odbc_connect("[data source name given]", "user", "password");
$connect = odbc_connect("myaccess", "", "");
if($connect === false){echo "did not work<br>";exit}
echo "success";

How to connect php and MS SQL in LAMP

I am trying to connect php with ms sql server in lamp environment.
$con = new PDO('odbc:Driver=FreeTDS; Server=HOST; Database=TWO; UID=sa; PWD=123456789;');
I go through like 100+ suggestion.Nothing works ,
all i get is a BIG and SAME Error SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Can anyone please give a working example, they might tried already.
If you have freeTDS installed try one of the following connection string it works for me:
$db = new PDO("sqlsrv:Server=YouAddress;Database=YourDatabase", "Username", "Password");
$dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");//if using dblib

Connecting to a MS Access database

Someone asked me to do some research to achieve the following result, maybe you guys can help me out an suggest me some tips.
We have a local server and there are different 'jobs' on it ( in a MS Access ) Database.
Now we want to create a platform where other users can check their "job status" with different parameters ( field names etc ) from the MS Access database.
I am looking for the best practice, how to connect to this database from everywhere in the world. I already did some research and found the following links:
http://phpmaster.com/using-an-access-database-with-php/
http://www.php.net/manual/en/function.odbc-connect.php
How can I connect between a web-application and that MS Access database
Can I update it realtime
What kind of protocol does the servers has to support to intereact with a website?
Currently the server can be reached from outside via a VPN connection.
A piece of code I've already tried :
try{
$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=Custos_TAB.accdb;Uid=Admin");
}catch(PDOException $e){
echo $e->getMessage();
}
I received the following error : "could not find driver".
Try this, assuming you have the PDO odbc driver installed and enabled on the web server.
$user='Admin';
$password='';
$mdbFilename="Custos_TAB.accdb";
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$mdbFilename", $user, $password);
$sql="SELECT * FROM [tblHere]";
$rs=odbc_exec($connection,$sql);
//do stuff here
odbc_close($connection);
or
$user='Admin';
$password='';
/*if you have a path here such as c:\db\Custos_TAB.accdb, make sure to use double
backslashes, (i.e "c:\\db\\Custos_TAB.accdb")*/
$mdbFilename="Custos_TAB.accdb";
$conn = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$mdbFilename;Uid=$user='Admin';Pwd=$password;");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Stop running services first (if there's any)
Open the php.ini file and uncomment the extension for php_pdo_odbc
Start services again (if needed)
Make sure you correctly locate your database in Dbq=Custos_TAB.accdb
//Just an example in my case
Dbq=C:\Users\Server\Documents\Db1.accdb

Categories