Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung, wie PHP PDO verwendet, um auf die Oracle-Datenbank zuzugreifen

Detaillierte Erklärung, wie PHP PDO verwendet, um auf die Oracle-Datenbank zuzugreifen

黄舟
黄舟Original
2017-09-30 09:12:454610Durchsuche

POD-Erweiterung wurde in PHP5 hinzugefügt. Diese Erweiterung bietet eine in PHP integrierte Klasse PDO für den Zugriff auf die Datenbank. Verschiedene Datenbanken verwenden denselben Methodennamen, um das Problem inkonsistenter Datenbankverbindungen zu lösen. Im folgenden Artikel werden hauptsächlich die Schritte vorgestellt, mit denen PHP mithilfe von PDO auf die Oracle-Datenbank zugreifen kann.

Vorwort

PDO hat von Anfang an über die Erfolge und Misserfolge der Skalierung bestehender Datenbanken gelernt. Da der Code von PDO brandneu ist, haben wir die Möglichkeit, die Leistung von Grund auf neu zu gestalten, um die neuesten Funktionen von PHP 5 zu nutzen.

PDO wurde entwickelt, um allgemeine Datenbankfunktionen als Grundlage bereitzustellen und gleichzeitig einen einfachen Zugriff auf die einzigartigen Funktionen eines RDBMS zu ermöglichen.

Obwohl PHP und MySQL eine Standardpaarung in LAMP sind, verwendet das Projekt des Unternehmens MySQL und Oracle als Laufzeitbibliothek bzw. Auftragsbibliothek, sodass PHP mit der Oracle-Datenbank verbunden sein muss. In diesem Artikel wird erläutert, wie Sie über PDO eine Verbindung zur Oracle-Datenbank herstellen. Ich werde im Folgenden nicht näher darauf eingehen.

Entwicklungsumgebung

Lassen Sie mich zunächst auch die Umgebung erklären, die ich verwende:

  • RedHat(CentOS)6.7

  • PHP5.6

  • Oracle11g

Auf die Erstellung von PHP5.6 kann hier verwiesen werden.

Auf die Installation von Oracle in einer Linux-Umgebung kann hier verwiesen werden.

Das geht natürlich auch nicht Installieren Sie das gesamte Oracle, aber installieren Sie nur den Instant-Client, um dies zu erreichen. Wenn es sich um den Oracle-Verbindungsschritt des Instant-Clients handelt, lesen Sie bitte den Bestätigungsabschnitt am Ende dieses Blogbeitrags.

Bevor Sie mit den folgenden Schritten beginnen, stellen Sie bitte sicher, dass die oben genannten drei Umgebungen korrekt konfiguriert und verfügbar sind.

PDO_OCI installieren

Wenn Sie die PHP5.6.31-Version installiert haben, scheint das pdo_oci-Modul bereits enthalten zu sein Aber sicherheitshalber installieren wir es neu.

Herunterladen und entpacken


$ wget https://pecl.php.net/get/PDO_OCI-1.0.tgz
$ tar -xvf PDO_OCI-1.0.tgz
$ cd PDO_OCI-1.0

Konfiguration ändern Datei

Aktualisieren Sie die Datei config.m4 im Verzeichnis, damit sie für Oracle11g geeignet ist


# 在第10行左右找到与下面类似的代码,添加这两行:
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then
 PDO_OCI_VERSION=11.2

# 在第101行左右添加这几行:
11.2)
 PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
 ;;

Kompilieren

Im aktuellen Verzeichnis ausführen


$ phpize

phpize ähnelt gcc Befehl, wird hauptsächlich zum Generieren von PHP-Plug-in-Modulen verwendet. phpize ist vom php-deval-Modul abhängig. Bitte verwenden Sie yum, um php-deval selbst zu installieren.

Sie können überprüfen, ob es installiert wurde, indem Sie den folgenden Befehl ausführen:


$ rpm -qa | grep php

Überprüfen Sie, ob php56w-deval-5.6.xxx vorhanden ist. Wenn nicht, installieren Sie bitte php56w-deval, um es zu installieren.

Installation

Nachdem der phpize-Befehl ausgeführt wurde, werden viele Dateien im Verzeichnis generiert, einschließlich configure und Andere gemeinsame Dateien, die wir Um die Standarddatei der Anwendung über den Quellcode unter Linux zu installieren, führen Sie die folgenden Befehle nacheinander aus:


$ ./configure
$ make && make install

Im Allgemeinen werden Sie hier auf ein Problem stoßen , und Sie werden beim Erstellen aufgefordert In der Datei pdo_oci.c:


pdo_oci.c:34: error: expected ‘=', ‘,', ‘;', ‘asm' or ‘attribute' before ‘pdo_oci_functions'

Die Lösung besteht darin, Zeile 34 der Datei pdo_oci.c zu ändern. Ändern Sie function_entry in zend_function_entry, speichern Sie es und erstellen Sie es erneut. Das war's.

Ini-Datei erstellen

Nach Erfolg wird angezeigt, dass sie sich bereits in /usr/lib64/ befindet. php/modules-Verzeichnis Das Modul pdo_oci.so wird generiert. Wir müssen PHP lediglich mitteilen, dass wir auf dieses Modul verweisen möchten.

Erstellen Sie eine neue INI-Datei im Verzeichnis /etc/php.d: pdo_oci.ini, Inhalt:


extension=pdo_oci.so

Hier klicken , Das pdo_oci-Modul ist installiert und wir können es über php -m grep oci anzeigen.

OCI8 installieren

Der nächste Schritt ist die Installation des oci8-Moduls.

Herunterladen und dekomprimieren

Führen Sie die folgenden Befehle in der Befehlszeile nacheinander aus:


$ wget https://pecl.php.net/get/oci8-2.0.8.tgz
$ tar -xvf oci8-2.0.8.tgz
$ cd oci8-2.0.8

Kompilieren und installieren

Die Schritte ähneln denen von pdo_oci oben:


$ phpize
$ ./configure --with-oci8=shared
$ make && make install

Ini-Datei erstellen

Auf ähnliche Weise erstellen wir sie im Verzeichnis /etc/php.d oci8.ini, Inhalt:


extension=oci8.so

Apache neu starten

Nicht Vergessen Sie den Neustart. Gehen Sie zum Apache-Server, um das PHP-Modul neu zu laden:


$ service httpd restart

Wir können eine test.php-Datei im Website-Verzeichnis erstellen lautet:


<?php
phpinfo();

Dann gehen wir zur Seite, um die gedruckten PHPInfo-Informationen zu überprüfen, und überprüfen die relevanten Informationen der Module pdo, pdo_oci und oci8.

Zusammenfassung

Referenzen und Danksagungen

php5.3-Kunden, die eine Verbindung zu Oracle herstellen Terminal und pdo_oci-Modul installieren

Installieren der PHP-Erweiterungen PDO_OCI und OCI8 unter CentOS 6.4 64bit

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie PHP PDO verwendet, um auf die Oracle-Datenbank zuzugreifen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn