Cannot Connect ODBC Driver - php

I cannot access the ODBC Driver. I have a 64 bit Windows 7 System. To connect to a ODBC 5.1 Driver I used C:\Windows\SysWOW64\odbcad32. I created a User DSN with name AJOY. There was no problem with that. Everything worked fine for the past 3 months. But now when I use
odbc_connect()
to connect with the same User DSN name i have a problem. I usually connect by the statement
$conn=odbc_connect("Ajoy","","");
There was no problem with the statement earlier. But now When I run my code it returns like
odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified, SQL state IM002 in SQLConnect
When I check the Data Sources (ODBC) in control panel, I can see the User DSN that I created but I cannot remove it. When i click remove it throws an error like
The setup routines for the MySQL 5.1 Driver ODBC could not be found. Please re-install the driver
It also returns there is an architecture mismatch between the driver and the application. I tried various steps but still it is not working. How to fix this? Help me please!!

I believe your problem is what odbcad32 you are using. You must use the one in the c:\Windows\System32 for a 64 bit application; not the c:\windows\SysWow64 directory.
There are 2 versions, one for 32 bit and one for 64 bit applications.

Related

Cannot connect to Databricks SQL Endpoint using PHP and ODBC

I am trying to connect to our Databricks SQL endpoint using PHP in a Docker container.
I setup my Docker container to download and configure the ODBC driver as specified here: https://docs.databricks.com/integrations/bi/jdbc-odbc-bi.html#install-and-configure-the-odbc-driver-for-linux
My Docker setup is at https://github.com/rlorenzo/databricks_php
However, when it try to connect using ODBC from my PHP test script I get the error:
Warning: odbc_connect(): SQL error: [unixODBC][FreeTDS][SQL Server]Unable to connect to data source, SQL state S1000 in SQLConnect in /test_connection.php on line 14
ODBC connect failed: S1000
When I try to connect using the PDO library I get a different error message:
SQLSTATE[08S01] SQLConnect: 20009 [unixODBC][FreeTDS][SQL Server]Unable to connect: Adaptive Server is unavailable or does not exist
The connection details are correct because I was able to connect to the Databricks SQL endpoint using Datagrip. I can also verify that the ODBC library is properly installed because I can query a Microsoft SQL Server.
I must have the Databricks ODBC Connector misconfigured somehow, but I am clueless. From my view everything matches the documentation.
I have tried contacting Databricks support, but they have been unhelpful so far.
The problem was that the Databricks SQL driver does not yet support ARM, which my laptop and Docker container was building for. See ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/opt/simba/spark/lib/64/libsparkodbc_sb64.so' : file not found (0) (SQLDriverConnect)")
I updated my repo at https://github.com/rlorenzo/databricks_php with a working example and forced the container to build an x86 version.
Will update my repo if Databricks ever supports ARM.
Hope this helps someone in the future.

Microsoft Visual FoxPro Driver connection issue

Hi i am trying to connect with visual fox pro driver using .dbc file here is the code
$dsn = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=C:\DataMnt\WINSIMS.DBC;Exclusive=NO;collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
$conn = odbc_connect($dsn, "", "");
if (!$conn)
exit("Connection Failed: " .$conn );
i am getting below error please help
Error :-( ! ) Warning: odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified, SQL state IM002 in SQLConnect in C:\wamp64\www\testfiles\odbc_test.php on line 15
even i have installed the driver and its showing in my odbc drivers list and from there i have added that driver and defined .dbc file location.
but still i am getting this error i have read out all stack overflow posts but did not get success so please help. I have added attachment of driver which i have added.
i am using wamp 64 bit on windows 64 bit system i have tested mysql connector driver and that was working fine. i just have .dbc file is there any need of username and password ? or i can fill them blank.
Thanks in advance !
Update :- Microsoft Visual FoxPro Driver is showing in windows->SysWOW64->odbcad32.exe but not showing in windows->system32->odbcad32.exe
I currently have Foxpro ODBC driver running on Windows 10. It interacts with PHP 5.6 in XAMPP 32 bit. The queries are working. I compared your connection string with mine. It looks fine except the path to sourceDB may need to be separated by double back slashes. I have user DSN instead of system DSN. Here's a screen shoot of my ODBC admin panel.
ODBC admin panel

CodeIgniter 3 + SQL Server + Windows 10

I have a project working with CodeIgniter and sqlserver 2008 I updated my pc to windows 10 then stopped working, the sqlserver driver for php is configured and my php ini shows it, also the code connects to sql server but now when im triying to do a query it givme false
so this code:
$this->db->select('*')->from('distritos')->get()->result();
Fatal error: Call to a member function result() on a non-object in C:\
Always its like sqlserver not working anymore but cannot fix it.
Php info shows
PDO
PDO support enabled
PDO drivers mysql, pgsql, sqlite, sqlsrv
pdo_sqlsrv
pdo_sqlsrv support enabled
Version 3.0.2.2R (Unofficial)
Unofficial Changes Works with Native Clients 11/10/9
sqlsrv
sqlsrv support enabled
Version 3.0.2.2R (Unofficial)
Unofficial Changes Works with Native Clients 11/10/9
EDIT:
its my mistake cannot conect
Unable to connect to your database server using the provided settings.
Filename: C:/www/***/system/database/DB_driver.php
Line Number: 436
the database config its okay :S
The error wasnt on the config, was on the password that was expired but the code igniter wasn't showing the error becouse i have to active this config :
database.php
'db_debug' => TRUE,
Solved ;)

How can I determine what drivers are available to use with odbc in php (on a linux system)?

In PHP scripts, it looks like this is how you connect to an odbc database:
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);
The problem I'm having is that I don't know what to use for "Driver=". What I put in there is what was provided for another script I saw. In my script, all I do is try to connect using this line, but I get the following error:
Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect in /srv/www/htdocs/site/test.php on line 8
From what I can tell, it looks like the driver I specified is incorrect. The database I am trying to connect to is an MSSQL database, and I only plan to query for information from it. Is there a way to list the database drivers I have available on my system? I've never had to install/configure any drivers like this before (I've never done anything like this; all php work I've done in the past has been with MySQL). Also, I don't want to compile other software onto my system (if possible); I would prefer to install all packages from repos.
You should have a file called odbcinst.ini (probably in /etc or /usr/local/etc but you can locate it with the command odbcinst -j). This file defines your ODBC drivers. Each driver is named within the [] in each section.
You might find Linux ODBC useful as it contains a thorough explanation of unixODBC, how it works and how to define data sources.
The question was how to find the list of ODBC drivers available. In the command line run:
odbcinst -q -d
This will list the drivers if you don't know already.

PHP failed to connect to Microsoft Access Database

I am trying to connect to a Microsoft Access Database using PHP PDO, but got this error message:
SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver
Manager]Data source name not found, and no default driver specified
The error happens at this line:
$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};Dbq=C:\\wamp\\www\\phprestsql\\UTILITY.accdb");
I do not have an user name setup for the database, I also tried
$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};Dbq=C:\\wamp\\www\\phprestsql\\UTILITY.accdb;User=Admin");
and the problem still remains
What could be the problem? I checked the path for the Access Database file and it is correct.
I am using the WAMP for the PHP.
The system is Windows 7 Home Premium. Do I need to install some ODBC driver?
Edit:
I downloaded the ACE according to HansUp's suggestion, but still has the same problem.
I have also tried to convert my file to .mdb, but still has the same problem. In the PHP code I verified the ,mdb file does exist. So it must be some kind of environment issue.
Update
Forgot to mention that I was running Virtual Box on Mac. Perhaps that was the problem.
Got really frustrated, then moved on to an old Windows Vista 32 bit machine and setup the environment using all 32 bit tools. It worked in the first run.
Thanks
Ray

Categories