PHP and MS Access
-
How can we connect a PHP script to MS Access (.mdb) file? I tried by including following PHP code: $db_path = $_SERVER['DOCUMENT_ROOT'] . '\WebUpdate\\' . $file_name . '.mdb'; $cfg_dsn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" . $db_path; $odbcconnect = odbc_connect($cfg_dsn, '', ''); But it failed and I received following error message: Warning: odbc_connect() [function.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:\web\WebUpdate\index.php on line 41
-
Answer:
Here's a sample for a connect and a simple select... <?php $db_conn = new COM("ADODB.Connection"); $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("./Northwind.mdb").";"; $db_conn->open($connstr); $rS = $db_conn->execute("SELECT * FROM Employees"); $f1 = $rS->Fields(0); $f2 = $rS->Fields(1); while (!$rS->EOF) { print $f1->value." ".$f2->value."<br />\n"; $rS->MoveNext(); } $rS->Close(); $db_conn->Close(); ?>
VarunGupta at Stack Overflow Visit the source
Other answers
In the filename, I'm looking at '\WebUpdate\' - it looks like you have one backslash at the beginning at two at the end. Are you maybe missing a backslash at the beginning?
Jesse Millikan
$db_path = $_SERVER['DOCUMENT_ROOT'] . '\WebUpdate\' . $file_name . '.mdb'; replace the backslashes with slashes use . '/WebUpdate/' .
Pop Catalin
it looks like a problem with the path seperators. ISTR that you have to pass backslashes not forward slashes The following works for me - with an MDB file in the webroot called db4 $defdir = str_replace("/", "\\", $_SERVER["DOCUMENT_ROOT"]); $dbq = $defdir . "\\db4.mdb"; if (!file_exists($dbq)) { die("Database file $dbq does not exist"); } $dsn = "DRIVER=Microsoft Access Driver (*.mdb);UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL=MS Access;DriverId=25;DefaultDir=$defdir;DBQ=$dbq"; $odbc_conn = odbc_connect($dsn,"","") or die("Could not connect to Access database $dsn");
Richard Harrison
I'm not certain if this is a violation of best practices or security, but I would like to throw out this suggestion: set up an ODBC connection and include the database's password in the odbc advance settings. give the odbc conn a DSN name then save. in your code, just set up the connection like: try { $conn = @odbc_connect("DSNName", "", "", "SQL_CUR_USE_ODBC"); // un and pw parameters are passed as empty strings since the DSN // has knowledge of the password already. // 4th parameter is optional $exec = @odbc_exec($conn, $insert) or die ("exec error"); echo "success!"; } catch (Exception $e) { echo $e->getMessage(); } // end try catch
m42
Related Q & A:
- How To Get Free Ms Point?Best solution by ehow.com
- How to convert my SQL query to MS Access query?Best solution by Stack Overflow
- How to store data in php and get data from php?Best solution by Stack Overflow
- Can I use MS Outlook to check my Yahoo mail?Best solution by Yahoo! Answers
- How to convert capital letters to small letters in MS excel?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.