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

Ausgedruckt am: 29.03.2024 um 15:03 Uhr

Mitglied: ITvortex
ITvortex 11.03.2014, aktualisiert am 11.05.2014 um 14:17:09 Uhr
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
Mitglied: geocast
geocast 11.03.2014 um 11:52:41 Uhr
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...
Mitglied: ITvortex
Lösung ITvortex 11.03.2014 aktualisiert um 12:01:42 Uhr
Goto Top
Mach mal ein Select * FROM dbName;

Damit du auch weißt ob die Spalten die du abfragst auch wirklich so heißen ;)
Mitglied: geocast
geocast 11.03.2014 um 12:01:29 Uhr
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!
Mitglied: ITvortex
ITvortex 11.03.2014 um 12:41:35 Uhr
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ß