2012-12-26 4 views
7

Ich muss die Verbindungsressource von bereits vorhandenen PDO-Objekt erhalten. Zum Beispiel:Wie bekomme ich eine Verbindungsressource vom PDO-Objekt?

... 
$oPDO = new PDO($sOdbcDsn); 
$rOdbcConnection = $oPDO -> getConnection(); 
odbc_prepare($rOdbcConnection, $sQuery); 
... 

auch umgekehrt, würde Ich mag bestehende Verbindung zum PDO-Konstruktor übergeben. Ich möchte die Möglichkeit haben, mit PDO-Objekten zu arbeiten und Verbindungen separat zu verbinden.

Gibt es eine Möglichkeit, die Verbindung von PDO zu extrahieren?

+1

Warum möchten Sie zwischen einem PDO und antiquierten Abfragemechanismus springen? PDO kann alles verarbeiten, was Sie benötigen, und gleichzeitig die zusätzlichen Sicherheiten bereitstellen. –

+1

Ich bin mir nicht sicher, ob es einen Unterschied macht, es ist das RDBMS, das den Pool von Verbindungen intern verwaltet und die Verbindungs-IDs zuweist. Die Übergabe des Verbindungsobjekts übergibt die zugehörige Verbindung wahrscheinlich nicht an das RDBMS. – Sebas

+1

Brad, PDO hat seit langem keinen Fehler mit BLOB-Datenfeldern behoben und mein DB-Backend, das auf PDO basierte, kann diese BLOB-Abfragen nicht verarbeiten. Also muss ich Abhilfe schaffen. – alkaponey

Antwort

2

Ich würde denken, haben Sie zwei Möglichkeiten:

  1. Ihre PDO Verbindung wickeln (und Methoden) in einer Klasse, die Sie herum wie Sie wollen passieren können. Definieren Sie einen Kopierkonstruktor, der das Verbindungshandle wiederverwenden wird.

  2. Graben Sie die Quelle zum PDO-Objekt von der PHP-Quelle und bauen Sie, was Sie von dort brauchen.