PHP und Datenbanken
Dieser Abschnitt enthält häufige Fragen über die Verbindung von PHP und Datenbanken. PHP kann in der Tat auf praktisch jede verfügbare Datenbank zugreifen.
- Ich habe gehört, dass es möglich ist, den Microsoft SQL-Server aus PHP anzusprechen. Wie?
- Kann ich auf Microsoft Access-Datenbanken zugreifen?
- Wieso wird von der Verwendung der MySQL-Erweiterung (ext/mysql), die ich seit über 10 Jahren verwendet habe, abgeraten? Ist diese veraltet? Was soll ist stattdessen tun? Wie kann ich umstellen?
- Wieso bekomme ich so eine Fehlermeldung: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>"?
- Ich habe gehört, dass es möglich ist, den Microsoft SQL-Server aus PHP anzusprechen. Wie?
-
Auf Unix-Rechnern können Sie PDO_ODBC oder die Unified ODBC API verwenden.
Auf Windows-Rechnern können Sie ebenfalls PDO_SQLSRV oder SQLSRV verwenden.
Sehen Sie sich auch die Antwort auf die nächste Frage an.
- Kann ich auf Microsoft Access-Datenbanken zugreifen?
-
Ja. Sie haben bereits alle nötigen Werkzeuge, wenn sie komplett unter Windows 9x/Me oder NT/2000 arbeiten, wo Sie ODBC und die ODBC-Treiber von Microsoft benutzen können, um auf Microsoft Access-Datenbanken zuzugreifen.
Wenn Sie PHP auf einem Unix-Rechner betreiben und auf MS Access auf einem Windows-Rechner zugreifen wollen, brauchen sie ODBC-Treiber für Unix. » OpenLink Software bietet Unix-basierte ODBC-Treiber an, die dazu geeignet sind.
Eine weitere Alternative ist es, einen SQL-Server zu benutzen, der ODBC-Treiber für Windows anbietet und diesen dann zu benutzen, um die Daten dort abzulegen, um sie dann von Microsoft Access (über ODBC) und PHP (mit den mitgelieferten Treibern) aus anzusprechen, oder ein dazwischengeschaltetetes Dateiformat zu benutzen, das sowohl Access als auch PHP verstehen, beispielsweise Plaintext oder dBase-Datenbanken. Zu diesem Punkt schreibt Tim Hayes von OpenLink Software:
Eine andere Datenbank als vermittelndes Element zu benutzen ist keine gute Idee, wenn Sie ODBC direkt von PHP aus zur Datenbank benutzen können - etwa mit den Openlink-Treibern. Wenn Sie wirklich ein zwischengeschaltetes Dateiformat benötigen, hat Openlink jetzt Virtuoso (eine virtuelle Datenbank) für NT, Linux und andere Unix-Plattformen herausgebracht. Bitte besuchen Sie unsere » Webseite, wenn Sie Virtuoso kostenlos herunterladen wollen.
Eine Möglichkeit, die sich als erfolgreich herausgestellt hat, ist die Benutzung von MySQL und den MyODBC-Treibern unter Windows, um die Datenbanken zu synchronisieren. Steve Lawrence schreibt dazu:
- Installieren Sie MySQL wie in der Dokumentation beschrieben auf ihrem System. Die neueste Version finden Sie auf » www.mysql.com Es ist keine spezielle Konfiguration nötig, außer dass Sie beim Erzeugen einer Datenbank und der Einrichtung des Benutzeraccounts im Host-Feld ein % oder den Hostnamen des Windows-Computers, von dem aus Sie zugreifen möchten, eintragen sollten. Notieren Sie sich den Servernamen, Benutzernamen und das Passwort.
- Laden Sie die MyODBC for Windows-Treiber von der MySQL-Seite herunter. Installieren Sie ihn auf ihrem Windows-Rechner. Sie können die Funktionsfähigkeit mit den mitgelieferten Programmen testen.
- Erstellen Sie eine Benutzer- oder System-DSN in den ODBC-Optionen in der Systemsteuerung. Überlegen Sie sich einen DSN-Namen und geben Sie den Hostnamen, Benutzernamen, Passwort, Port, etc ihrer MySQL-Datenbank an, die Sie im 1. Schritt konfiguriert haben.
- Installieren Sie Access als Vollinstallation. Das stellt sicher, dass Sie die richtigen Add-Ins haben. Zumindest benötigen Sie die ODBC-Unterstützung und den Linked-Table-Manager.
- Jetzt zum lustigen Teil! Erstellen Sie eine neue Access-Datenbank. Rechtsklicken Sie im Tabellenfenster und wählen Sie Link Tables/Tabellen verknüpfen oder im Menü Datei den Punkt Get External Data und dann Link Tables/Tabellen verknüpfen. Wenn das Dateibrowser-Fenster erscheint, wählen Sie Dateien vom Typ: ODBC. Wählen Sie System-DSN und den Namen der DSN, die Sie in Schritt 3 erstellt haben. Wählen sie die zu verknüpfende Tabelle, klicken Sie auf OK und Sie können jetzt die Tabelle öffnen und Daten auf Ihrem MySQL-Server hinzufügen/löschen/ändern. Sie können auch Abfragen erzeugen, Tabellen importieren und exportieren und Formulare und Reports generieren, etc.
Tipps und Tricks:
- Sie können Ihre Tabellen in Access erstellen und nach MySQL exportieren und Sie dann wieder verknüpfen. Das erleichtert das Erstellen von Tabellen.
- Wenn Sie Tabellen in Access erstellen, müssen Sie einen Primärschlüssel definieren, wenn Sie über Access Schreibzugriff haben wollen. Vergewissern Sie sich, dass sie einen Primärschlüssel in MySQL erzeugen, bevor Sie die Tabelle in Access verknüpfen.
- Wenn Sie ein Tabelle in MySQL ändern, müssen Sie sie in Access neu verknüpfen. Rufen Sie Tools>add-ins>linked table manager auf, suchen Sie ihre ODBC-DSN, und wählen Sie die Tabelle aus, die neu verknüpft werden soll. Sie können Ihre DSN-Quelle auch verschieben, wenn Sie die "always prompt for new location"-Checkbox ankreuzen, bevor Sie OK klicken.
- Wieso wird von der Verwendung der MySQL-Erweiterung (ext/mysql), die ich seit über 10 Jahren verwendet habe, abgeraten? Ist diese veraltet? Was soll ist stattdessen tun? Wie kann ich umstellen?
-
Es gibt drei MySQL-Erweiterungen, die im Abschnitt Wählen einer MySQL-API beschrieben werden. Die alte API sollte nicht verwendet werden und ist seit PHP 5.5.0 als veraltet markiert und wurde mit PHP 7.0.0 nach PECL verschoben. Es wird stark dazu geraten beim Schreiben von neuem Code entweder mysqli oder PDO_MySQL zu verwenden.
Derzeit sind keine Migrationsskripte verfügbar, jedoch enthält die mysqli-API sowohl eine prozedurale als auch eine OOP-API. Die prozedurale Version ist dabei ähnlich zu ext/mysql.
Es ist nicht möglich die Erwieterungen zu mischen. Es wird beispielsweise nicht funktionieren eine mysqli-Verbindung an PDO_MySQL oder ext/mysql zu übergeben.
- Wieso bekomme ich so eine Fehlermeldung: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>"?
-
Sie versuchen, einen result identifier zu benutzen, der 0 ist. Die 0 bedeutet, dass Ihre Abfrage aus irgend einem Grund fehlgeschlagen ist. Sie sollten auf Fehlermeldungen überprüfen, nachdem Sie Ihre Abfrage losgeschickt haben und bevor Sie versuchen, mit dem Ergebnis zu arbeiten. Dies kann mit diesem oder ähnlichem Code bewerkstelligt werden:
<?php
$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
echo mysql_error();
exit;
}
?><?php
$result = mysql_query("SELECT * FROM tables_priv")
or die("Bad query: " . mysql_error());
?>
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-faq.databases.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.