Verbinden met MS Access database (Linux)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
try {
$db=new PDO("odbc:Driver=MDBTools; DBQ=/mnt/<dir>/<file>.mdb;");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query=$db->query("SELECT * FROM <table>;");
$return=array();
if($query) {
while($result=$query->fetch(PDO::FETCH_ASSOC)) {
$return[]=$result;
}
}else $return['error']=1;
//close
$query=null;
$db=null;
print_r($return);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$db=new PDO("odbc:Driver=MDBTools; DBQ=/mnt/<dir>/<file>.mdb;");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query=$db->query("SELECT * FROM <table>;");
$return=array();
if($query) {
while($result=$query->fetch(PDO::FETCH_ASSOC)) {
$return[]=$result;
}
}else $return['error']=1;
//close
$query=null;
$db=null;
print_r($return);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
Op dit moment krijg ik de volgende fout: Connection failed: SQLSTATE[08001]: Client unable to establish connection: 1 Couldn't parse SQL (SQLExecute[1] at /build/php7.2-pRoOsC/php7.2-7.2.24/ext/pdo_odbc/odbc_stmt.c:260)
Gewijzigd op 25/03/2020 15:20:04 door Veur Heur
:/
Tijd om de technologie-stack te vereenvoudigen?
Je hebt het ook over "jaren". Is er in al die tijd nooit een balletje over opgegooid?
Wellicht ook hoog tijd om deze technical debt in te lossen.
Gewijzigd op 25/03/2020 15:54:23 door Thomas van den Heuvel
Maar hierover gaat deze topic niet, dus als je een oplossing hebt, graag.
Voordat je de oplossing hebt/formuleert zul je eerst moeten uitzoeken wat er precies misgaat.
Gewijzigd op 25/03/2020 16:20:19 door Thomas van den Heuvel
Ik kan het bestand "zien" in de share en ook als ik het bestand lokaal haal krijg ik dezelfde melding. Het lijkt me dus geen rechtenkwestie. Krijg verder ook geen fouten dat ODBC niet op de server zou draaien.
Wild guess: wat als je de punt-komma uit je query verwijdert?
YOU DA MAN!! Vreemd genoeg lost dit het probleem op, waarbij de foutmelding lijkt te zeggen dat het bij de connectie ligt.
Mogelijk verschillen in (hoe) de drivers (onder water werken) dan ofzo in vergelijking met de oude situatie, who knows :).