WAMP php ODBC Connection 'Warning' - php

I have a problem with ODBC in php (WAMP Server 2.5, PHP 5.5.12).
When I try to run:
$conn = odbc_connect("odbc_dsn", "user", "pwd");
if ($conn)
{
echo "Connection established.";
}
else
{
exit("Connection could not be established.");
}
I get a Warning:
Warning: odbc_connect(): in C:\wamp\www\Concepts\index.php on line 29
Connection could not be established.
If I change the "odbc_dsn" to something else (that doesn't exist) like "fdbasdf" then I get:
Warning: odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager]
Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben,
SQL state IM002 in SQLConnect in C:\wamp\www\Concepts\index.php on line
Connection could not be established.
(Translated)
The Data Source could not be found, and no default driver is given.
This tells me that the first execution was able to find the db, but did not open it... Why?
Is this another config thing? Is it trying to execute Client-Side? What can I do?

You have to specify the Host and Connect protocol:
$connect_string = "Driver={SQL Anywhere 12};".
"CommLinks=tcpip(Host=$db_host);".
"ServerName=$db_server_name;".
"DatabaseName=$db_name;";
// Connect to DB
$conn = odbc_connect( $connect_string, $db_user, $db_pass );

Related

SQLSTATE[28000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user

I'm using the following PHP connection file to connect to my SQL Server database.
<?php
$servername = "...";
$username = "...";
$password = "";
$dbname = "...";
try {
$conn = new PDO("sqlsrv:Server=$servername;Database=$dbname", $username, $password);
echo "Connected to $dbname at $servername successfully.";
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $pe) {
die ("Could not connect to the database $dbname :" . $pe->getMessage());
}
?>
I keep getting this error that says:
"SQLSTATE[28000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL
Server]Login failed for user $username".
I have downloaded latest version of ODBC 17 and 18 and I expected this to resolve this issue, but it hasn't. My SQL Server authentication is set to SQL Server and Windows Authentication also.
if using laravel, in your .env file:
DB_CONNECTION=sqlsrv
DB_HOST=DESKTOP-91MB9QU\TESTSQLSERVER
DB_PORT=
DB_DATABASE=laravel_test
DB_USERNAME=sa
DB_PASSWORD='mypassword'
and you can use it. pay attention to DB_CONNECTION=sqlsrv and DB_HOST must has format of "PC-name\SQL-server-name" and DB_PORT has null value.
you can use similar way to pure php code.

PHP odbc_connect - failed to connect to firebird

I'm trying to connect to database by ODBC Setup
Firebird ODBC setup
<?php
$user = "SYSDBA";
$password = "masterkey";
$dsn= "DRIVER={Devart ODBC Driver for Firebird};Database=bazatestowa;Server=localhost;Port=3050";
$con=odbc_connect($dsn,$user,$password);
if($con){
echo "Connected";
}else{
echo "Failed"; }
?>
This is error I get:
Warning: odbc_connect(): SQL error: [Microsoft][driver manager
ODBC] Could not find data source name and no default driver specified
, SQL state IM002 in SQLConnect in
C:\Integracja-skrypty\index.php on line 5
I have no idea what to input in $dsn to make it work.
I translated the error message.
<?php
$user = "SYSDBA";
$password = "masterkey";
$dsn= "DRIVER={bazatestowa}";
$con=odbc_connect($dsn,$user,$password);
if($con){
echo "Connected";
}else{
echo "Failed";
}
?>
With this code the error is the same.
<?php
$user = "SYSDBA";
$password = "masterkey";
$dsn= "bazatestowa";
$con=odbc_connect($dsn,$user,$password);
if($con){
echo "Connected"; }else{ echo "Failed"; }
?>
With this code I have this error
PHP Warning: odbc_connect (): SQL error: [Microsoft] [ODBC driver
manager] Given DSN contains architecture mismatch between driver and
application, SQL state IM014 in SQLConnect in C: \ Integration-scripts
\ index.php on line 5

Cannot connect to MS Access DB with PHP : SQLSTATE[IM002]

I am trying to get data from a MS Access DB (.mdb) but I'm getting:
échec de connexion: SQLSTATE[IM002] SQLDriverConnect: 0
[Microsoft][Gestionnaire de pilotes ODBC] Source de données
introuvable et nom de pilote non spécifié.
English:
connection failure: SQLSTATE [IM002] SQLDriverConnect: 0 [Microsoft]
[ODBC driver manager] data source not found and driver name
unspecified.
I have : Office 365 Business 32-bit
installed. Already installed the latest Access Database Engine 32-bit. Uncommented " extension=pdo_odbc " in php.ini.
Added the "Microsoft Access Driver" to the list of drivers.
$dbName = 'C:\wamp64\www\Test\Workgroup.mdb';
if (!file_exists($dbName))
{
die("Could not find database file.");
}
else
{
try{
//$dbName = 'Workgroup.mdb';
$cnx = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; Dbq=$dbName; Uid=; Pwd=;");
echo "connected successfully";
return $cnx;
}
catch(Exception $e){
die ("failed to connect: " . $e->getMessage());
}
}

connecting to MS access with php when defined password for database

I am trying to connect Ms Access DataBase from php .
My codes like this in config.php
define('DBNAMEACCESS', '\\'."\\xxx.xxx.xxx.xxx\\test\\test.accdb");
define('DBACCESSPASSWORD', 'mypassword');
define('DBACCESSUSERNAME', '');
and in process.php like this:
include './config.php';
if (!file_exists(DBNAMEACCESS)) {
die("Could not find database file.");
}
try{
$dbName=DBNAMEACCESS;
$username=DBACCESSUSERNAME;
$password=DBACCESSPASSWORD;
$dba = odbc_connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$dbName",$username, $password);
if ($dba) {
/*......*/
} else
{
die("Could not connect to access database");
}
}
catch (Exception $ex) {
// var_export($ex);
setmessage($ex) ;
}
when the password is defined for access file , I get this error on this line:
My error: odbc_connect(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt., SQL state S1000 in SQLConnect in this line
$dba = odbc_connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=$dbName",$username, $password);
and when the password is not defined for access file,My codes execute correctly.
The problem was related to the Microsoft Access Database Engine Installation.
I've tried with this and restart my computer.
then worked correctly.

How to connect user name password protected ms access 2000 database (.*mdb) using php

Hi guys i want to connect USERNAME,PASSWORD protected MS ACCESS 2000 (.*mdb) database using PHP, ODBC or any other database connection. But given below code show WARNING and doesn't connect to the database. please anyone help.
CODE 1
$mdbFilename = "C:\Documents and Settings\Hp\Desktop\Door\DB\IMSDB.mdb";
$user = 'test';
$password ='123';
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};DBQ=$mdbFilename;",$user,$password);
if($connection)
{
echo "Success";
}
else
{
exit("Connection Failed: ".$connection);
}
WARNING MESSAGE
Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Microsoft Access Driver] You do not have the necessary permissions to use the '(unknown)' object. Have your system administrator or the person who created this object establish the appropriate permissions for you., SQL state 42000 in SQLConnect in C:\xampp\htdocs\punch\test.php on line 6
Output -> Connection Failed
CODE 2
I tried given below code also. there are no any ERRORS or WARNING MESSAGE but not connect to the access database.
$mdbFilename = "C:\Documents and Settings\Hp\Desktop\Door\DB\IMSDB.mdb";
$systemDbFilename = "C:\Documents and Settings\Hp\Desktop\Door\DB\SYSTEM.MDW";
$user = 'test';
$password ='123';
$adoCon = new COM("ADODB.Connection") or die("Cannot start ADO");
$connection= $adoCon->Open("Driver={Microsoft Access Driver (*.mdb)};DBQ=$mdbFilename; SystemDB=$systemDbFilename;Uid=$user; Pwd=$password;");
if(($connection->State) > 0)
{
echo "Success";
}
else
{
exit("Connection Failed: ".$connection);
}
Output -> Connection Failed
CORRECT ANSWER
Finally I found the answer. I tried PDO to connect ODBC.
WORKING CODE
try {
$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=D:\Door\DB\IMSDB.mdb;SystemDB=D:\Door\DB\SYSTEM.MDW;Uid=test;Pwd=123;");
if($dbh)
{
echo "Connection Success";
}
}
catch (PDOException $e)
{
echo $e->getMessage();
}

Categories