geocast
Goto Top

PHP mdb Abfragen

Hallo zusammen

Ich konstruiere gerade eine Webseite, auf der kann man Namen auswählen und E-Mails verschicken bzw. auch SMS.

Jetzt wollte ich eine Schnittstelle machen zu einer Access Datenbank um dort die Namen und EMail Adressen zu extrahieren.

Leider klappt das bisher nur bedingt. In der mdb Datenbank sind manche Spalten mit Abständen deklariert (was ja eigentlich kein problem ist) und diese Enden immer mit einem Fehler.

Hier der Code soweit. Der funktioniert auch, wenn man eine Spalte ohne Abstände auswählt:

 

$dbName = "C:\Users\Benutzer\Desktop\mdb\datenbank.mdb";  
if (!file_exists($dbName)) {
    die("Could not find database file.");  
}
$dbh = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");  


$sth = $dbh->prepare("SELECT `First Name` FROM tblCareGiver");  
$sth->execute();


	$array = array();
    $array = $sth->fetchall(PDO::FETCH_COLUMN);
	$row_count = count($array);




$i = 0;
do{
	echo $array[$i] . "<br>";  
	$i++;
}while($i < $row_count);


Das Problem ist bei SELECT First Name
Mit den Anführungszeichen geht es nicht und mit eckigen klammer [First Name] geht es auch nicht, es kommt immer 0 als Ergebnis raus bzw. vorher kam ein fehler bei den eckigen klammern, allerdings kommt jetzt als Ergebnis 0.

Wisst ihr evtl. weiter?

Vielen Dank

Content-Key: 232293

Url: https://administrator.de/contentid/232293

Printed on: April 24, 2024 at 08:04 o'clock

Member: ITvortex
ITvortex Mar 11, 2014, updated at May 11, 2014 at 12:17:09 (UTC)
Goto Top
Wieso schreibst du 'First Name', ich vermute mal das so deine tabelle nicht so heißen wird ;)

Und man nennt auch seine Spalten nicht "First Name" sonder first_name

Und dir ist schon bewusst das ein Apostroph (') für einen String steht, und die Hochkomma (") für alias verwendet werden?

Zum Beispiel:

SELECT "First Name" first_name FROM deinerTabelle;  

lg
Member: geocast
geocast Mar 11, 2014 at 10:52:41 (UTC)
Goto Top
Das ist das Problem, die mdb Datenbank ist nicht von mir, die ist Uralt von einer Firma, aber wird noch weiter Verwendet. Und leider ja, die Spalte heißt First Name.

Das ist mir auch bewusst, wusste nur nicht mehr wie es heißt beim Schreiben. Aber hilft alles nichts...
Member: ITvortex
Solution ITvortex Mar 11, 2014 updated at 11:01:42 (UTC)
Goto Top
Mach mal ein Select * FROM dbName;

Damit du auch weißt ob die Spalten die du abfragst auch wirklich so heißen ;)
Member: geocast
geocast Mar 11, 2014 at 11:01:29 (UTC)
Goto Top
Ok hattest recht, Spalte heißt wirklich FName, war nur der Alias. Manchmal kommt man sich schon blöd vor.
Funktioniert jetzt, danke!
Member: ITvortex
ITvortex Mar 11, 2014 at 11:41:35 (UTC)
Goto Top
Zitat von @geocast:

Ok hattest recht, Spalte heißt wirklich FName, war nur der Alias. Manchmal kommt man sich schon blöd vor.
Funktioniert jetzt, danke!

Passiert jedem mal ;)

Super!

Gruß