Konstanten (Microsoft-Treiber für PHP für SQL Server)

PHP-Treiber herunterladen

In diesem Thema werden die Konstanten erläutert, die durch Microsoft-Treiber für PHP für SQL Serverdefiniert sind.

Konstanten zum Treiber PDO_SQLSRV

Die Konstanten, die auf der PDO-Website aufgeführt sind, gelten in Microsoft-Treiber für PHP für SQL Server.

Im Folgenden werden die Microsoft-spezifischen Konstanten im PDO_SQLSRV-Treiber beschrieben.

Konstanten der Transaktionsisolationsebene

Der TransactionIsolation -Schlüssel, der mit PDO::__constructverwendet wird, akzeptiert eine der folgenden Konstanten:

  • PDO::SQLSRV_TXN_READ_UNCOMMITTED

  • PDO::SQLSRV_TXN_READ_COMMITTED

  • PDO::SQLSRV_TXN_REPEATABLE_READ

  • PDO::SQLSRV_TXN_SNAPSHOT

  • PDO::SQLSRV_TXN_SERIALIZABLE

Weitere Informationen zum TransactionIsolation -Schlüssel finden Sie unter Connection Options.

Codierungskonstanten

Das PDO::SQLSRV_ATTR_ENCODING-Attribut kann an PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn und PDOStatement::bindParam übergeben werden.

Die verfügbaren Werte, die an PDO::SQLSRV_ATTR_ENCODING übergeben werden können, sind

Konstanten zum Treiber PDO_SQLSRV BESCHREIBUNG
PDO::SQLSRV_ENCODING_BINARY Die Daten sind ein einfacher, uncodierter und nicht übersetzter Strom aus unbearbeiteten Bytes.

Dies gilt nicht für PDO::setAttribute.
PDO::SQLSRV_ENCODING_SYSTEM Daten stellen 8-Bit-Zeichen gemäß der Codepage des im System eingestellten Windows-Gebietsschemas dar. Alle Multi-Byte-Zeichen oder Zeichen, die nicht in dieser Codepage enthalten sind, werden durch ein aus einem einzelnen Byte bestehendes Fragezeichen (?) ersetzt.
PDO::SQLSRV_ENCODING_UTF8 Daten sind in UTF-8-Codierung. Diese ist die Standardcodierung.
PDO::SQLSRV_ENCODING_DEFAULT Verwendet PDO::SQLSRV_ENCODING_SYSTEM, wenn bei der Verbindung angegeben.

Verwenden Sie die Codierung der Verbindung, wenn diese in einer Prepare-Anweisung angegeben ist.

Abfragetimeout

Das PDO::SQLSRV_ATTR_QUERY_TIMEOUT-Attribut ist eine beliebige positive ganze Zahl, die das Timeout in Sekunden darstellt. Null (0) ist die Standardeinstellung und bedeutet kein Timeout.

Sie können das PDO::SQLSRV_ATTR_QUERY_TIMEOUT-Attribut mit PDOStatement::setAttribute, PDO::setAttribute und PDO::prepare angeben.

Direkte oder vorbereitete Ausführung

Sie können die Ausführung von direkten Abfragen oder die vorbereitete Ausführung mit dem Attribut PDO::SQLSRV_ATTR_DIRECT_QUERY auswählen. PDO::SQLSRV_ATTR_DIRECT_QUERY kann mit PDO::prepare oder PDO::setAttribute festgelegt werden. Weitere Informationen zu PDO::SQLSRV_ATTR_DIRECT_QUERY finden Sie unter Direkte Anweisungsausführung und vorbereitete Anweisungsausführung im PDO_SQLSRV-Treiber.

Verarbeiten von Abrufen numerischer Werte

Das Attribut PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE kann zum Verarbeiten des Abrufs numerischer Werte aus Spalten mit numerischen SQL-Typen („bit“, „integer“, „smallint“, „tinyint“, „float“ und „real“) verwendet werden. Wenn PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE auf „true“ festgelegt ist, werden die Ergebnisse aus einer ganzzahligen Spalte als int-Werte dargestellt; die SQL-Typen „float“ und „real“ dagegen werden als float-Werte dargestellt. Dieses Attribut kann mit PDOStatement::setAttribute festgelegt werden.

Mit den Attributen PDO::SQLSRV_ATTR_FORMAT_DECIMALS und PDO::SQLSRV_ATTR_DECIMAL_PLACES können Sie das Standardverhalten für die Formatierung von Dezimalzahlen ändern. Das Verhalten dieser Attribute ist dasselbe wie bei den entsprechenden Optionen auf der Seite von SQLSRV (FormatDecimals und DecimalPlaces), außer dass für die Formatierung keine Ausgabeparameter unterstützt werden. Diese Attribute können mit PDO::setAttribute oder PDOStatement::setAttribute auf Verbindungs- oder auf Anweisungsebene festgelegt werden, aber das entsprechende Verbindungsattribut wird von jedem Anweisungsattribut überschrieben. Weitere Details finden Sie unter Formatieren von Dezimalzeichenfolgen und Geldwerten (PDO_SQLSRV-Treiber).

Handhabung von Fetches für Datum und Uhrzeit

PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE gibt an, ob Datums- und Uhrzeittypen als PHP DateTime-Objekte abgerufen werden. Bei FALSE werden standardmäßig Zeichenfolgen zurückgegeben. Dieses Attribut kann mit PDO::setAttribute oder PDOStatement::setAttribute auf Verbindungs- oder auf Anweisungsebene festgelegt werden, aber das entsprechende Verbindungsattribut wird vom Anweisungsattribut überschrieben. Weitere Informationen finden Sie unter Vorgehensweise: Abrufen von Datums- und Uhrzeittypen als PHP-datetime-Objekte mit dem PDO_SQLSRV-Treiber.

SQLSRV-Treiberkonstanten

Die folgenden Abschnitte listen die Konstanten auf, die der SQLSRV-Treiber verwendet.

ERR-Konstanten

Die folgende Tabelle enthält die Konstanten, die verwendet werden, um anzugeben, ob sqlsrv_errors Fehler, Warnungen oder beides zurückgibt.

Wert BESCHREIBUNG
SQLSRV_ERR_ALL Fehler und Warnungen, die beim letzten sqlsrv -Funktionsaufruf generiert wurden, werden zurückgegeben. Dies ist der Standardwert.
SQLSRV_ERR_ERRORS Fehler und Warnungen aus dem letzten sqlsrv -Funktionsaufruf werden zurückgegeben.
SQLSRV_ERR_WARNINGS Warnungen aus dem letzten sqlsrv -Funktionsaufruf werden zurückgegeben.

FETCH-Konstanten

Die folgende Tabelle enthält die Konstanten, die verwendet werden, um den Typ des von sqlsrv_fetch_arrayzurückgegebenen Arrays anzugeben.

SQLSRV-Konstante BESCHREIBUNG
SQLSRV_FETCH_ASSOC sqlsrv_fetch_array gibt die nächste Datenzeile als assoziatives Array zurück.
SQLSRV_FETCH_BOTH sqlsrv_fetch_array gibt die nächste Datenzeile als Array zurück, das sowohl numerische als auch assoziative Schlüssel aufweist. Dies ist der Standardwert.
SQLSRV_FETCH_NUMERIC sqlsrv_fetch_array gibt die nächste Datenzeile als numerisch indiziertes Array zurück.

Protokollierungskonstanten

In diesem Abschnitt sind die Konstanten aufgelistet, die verwendet werden, um die Protokollierungseinstellungen mit sqlsrv_configurezu ändern. Weitere Informationen zur Protokollierung von Aktivitäten finden Sie unter Logging Activity.

Die folgende Tabelle beschreibt die Konstanten, die als Wert für die LogSubsystems Einstellung verwendet werden können:

SQLSRV-Konstante (entsprechende ganze Zahl in Klammern) BESCHREIBUNG
SQLSRV_LOG_SYSTEM_ALL (-1) Aktiviert die Protokollierung aller Subsysteme.
SQLSRV_LOG_SYSTEM_CONN (2) Aktiviert die Protokollierung der Verbindungsaktivität.
SQLSRV_LOG_SYSTEM_INIT (1) Aktiviert die Protokollierung der Initialisierungsaktivität.
SQLSRV_LOG_SYSTEM_OFF(0) Deaktiviert die Protokollierung.
SQLSRV_LOG_SYSTEM_STMT (4) Aktiviert die Protokollierung der Anweisungsaktivität.
SQLSRV_LOG_SYSTEM_UTIL (8) Aktiviert die Protokollierung der Fehlerfunktionsaktivität (z.B. handle_error und handle_warning).

Die folgende Tabelle listet die Konstanten auf, die als Wert für die LogSeverity -Einstellung verwendet werden können:

SQLSRV-Konstante (entsprechende ganze Zahl in Klammern) BESCHREIBUNG
SQLSRV_LOG_SEVERITY_ALL (-1) Gibt an, dass Fehler, Warnungen und Hinweise protokolliert werden.
SQLSRV_LOG_SEVERITY_ERROR (1) Gibt an, dass Fehler protokolliert werden.
SQLSRV_LOG_SEVERITY_NOTICE (4) Gibt an, dass Hinweise protokolliert werden.
SQLSRV_LOG_SEVERITY_WARNING (2) Gibt an, dass Warnungen protokolliert werden.

NULL-Wert-Konstanten

Die folgende Tabelle enthält die Konstanten, die Sie verwenden können, um zu bestimmen, ob eine Spalte NULL-Werte zulässt oder ob diese Information nicht verfügbar ist. Sie können den Wert des Nullable -Schlüssels vergleichen, der von sqlsrv_field_metadata zurückgegeben wird, um den Status der NULL-Wert-Behandlung der Spalte zu bestimmen.

SQLSRV-Konstante (entsprechende ganze Zahl in Klammern) BESCHREIBUNG
SQLSRV_NULLABLE_YES (0) In der Spalte ist NULL zulässig.
SQLSRV_NULLABLE_NO (1) NULL-Werte sind in der Spalte nicht zulässig.
SQLSRV_NULLABLE_UNKNOWN (2) Es ist nicht bekannt, ob die Spalte NULL-Werte zulässt.

PARAM-Konstanten

Die folgende Liste enthält die Konstanten für die Angabe der Parameterrichtung, wenn Sie sqlsrv_query oder sqlsrv_prepareaufrufen.

SQLSRV-Konstante BESCHREIBUNG
SQLSRV_PARAM_IN Gibt einen Eingabeparameter an.
SQLSRV_PARAM_INOUT Gibt einen bidirektionalen Parameter an.
SQLSRV_PARAM_OUT Gibt einen Ausgabeparameter an.

PHPTYPE-Konstanten

Die folgende Tabelle enthält die Konstanten, die verwendet werden, um die PHP-Datentypen zu beschreiben. Informationen zu PHP-Datentypen finden Sie unter PHP-Typen.

SQLSRV-Konstante PHP-Datentyp
SQLSRV_PHPTYPE_INT Integer
SQLSRV_PHPTYPE_DATETIME Datetime
SQLSRV_PHPTYPE_FLOAT Float
SQLSRV_PHPTYPE_STREAM($encoding1) Stream
SQLSRV_PHPTYPE_STRING($encoding1) String
  1. SQLSRV_PHPTYPE_STREAM und SQLSRV_PHPTYPE_STRING akzeptieren einen Parameter, der die Codierung des Streams angibt. Die folgende Tabelle enthält die SQLSRV-Konstanten, die als Parameter akzeptiert werden sowie eine Beschreibung der zugehörigen Codierung.
SQLSRV-Konstante BESCHREIBUNG
SQLSRV_ENC_BINARY Die Daten werden als uncodierter und nicht übersetzter Strom aus unbearbeiteten Bytes vom Server zurückgegeben.
SQLSRV_ENC_CHAR Daten werden in 8-Bit-Zeichen gemäß der Codepage des Windows-Gebietsschemas zurückgegeben, das auf dem System installiert ist. Alle Multi-Byte-Zeichen oder Zeichen, die nicht in dieser Codepage enthalten sind, werden durch ein aus einem einzelnen Byte bestehendes Fragezeichen (?) ersetzt.

Diese ist die Standardcodierung.
„UTF-8“ Die Daten werden in UTF-8-Codierung zurückgegeben. Diese Konstante wurde in Version 1.1 von der Microsoft-Treiber für PHP für SQL Serverhinzugefügt. Weitere Informationen zur UTF-8-Unterstützung finden Sie unter Vorgehensweise: Senden und Abrufen von UTF-8-Daten mithilfe der eingebauten UTF-8-Unterstützung.

Hinweis

Bei Verwendung von SQLSRV_PHPTYPE_STREAM oder SQLSRV_PHPTYPE_STRING muss die Codierung angegeben werden. Wenn kein Parameter angegeben wird, wird ein Fehler zurückgegeben.

Weiter Informationen zu diesen Konstanten finden Sie unter Gewusst wie: Angeben von PHP-Datentypen, Gewusst wie: Abrufen von Zeichendaten als Stream mit dem SQLSRV-Treiber.

SQLTYPE-Konstanten

Die folgende Tabelle enthält die Konstanten, die verwendet werden, um die SQL Server-Datentypen zu beschreiben. Einige Konstanten ähneln Funktionen und akzeptieren möglicherweise Parameter, die der Genauigkeit, den Dezimalstellen und/oder der Länge entsprechen. Beim Binden von Parametern sollten funktionsähnliche Konstanten verwendet werden. Für Typvergleiche sind standardmäßige (nicht funktionsähnliche) Konstanten erforderlich. Informationen zu SQL Server Datentypen finden Sie unter Datentypen (Transact-SQL). Weitere Informationen zu Genauigkeit, Skalierung und Länge finden Sie unter Genauigkeit, Skalierung und Länge (Transact-SQL).

SQLSRV-Konstante SQL Server-Datentyp
SQLSRV_SQLTYPE_BIGINT BIGINT
SQLSRV_SQLTYPE_BINARY BINARY
SQLSRV_SQLTYPE_BIT bit
SQLSRV_SQLTYPE_CHAR char5
SQLSRV_SQLTYPE_CHAR($charCount) char
SQLSRV_SQLTYPE_DATE Datum4
SQLSRV_SQLTYPE_DATETIME datetime
SQLSRV_SQLTYPE_DATETIME2 datetime24
SQLSRV_SQLTYPE_DATETIMEOFFSET datetimeoffset4
SQLSRV_SQLTYPE_DECIMAL decimal5
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) Decimal
SQLSRV_SQLTYPE_FLOAT float
SQLSRV_SQLTYPE_IMAGE image1
SQLSRV_SQLTYPE_INT INT
SQLSRV_SQLTYPE_MONEY money
SQLSRV_SQLTYPE_NCHAR nchar5
SQLSRV_SQLTYPE_NCHAR($charCount) NCHAR
SQLSRV_SQLTYPE_NUMERIC numeric5
SQLSRV_SQLTYPE_NUMERIC($precision, $scale) NUMERIC
SQLSRV_SQLTYPE_NVARCHAR, nvarchar5
SQLSRV_SQLTYPE_NVARCHAR($charCount) NVARCHAR
SQLSRV_SQLTYPE_NVARCHAR('max') nvarchar(Max)
SQLSRV_SQLTYPE_NTEXT ntext2
SQLSRV_SQLTYPE_REAL real
SQLSRV_SQLTYPE_SMALLDATETIME smalldatetime
SQLSRV_SQLTYPE_SMALLINT SMALLINT
SQLSRV_SQLTYPE_SMALLMONEY SMALLMONEY
SQLSRV_SQLTYPE_TEXT text3
SQLSRV_SQLTYPE_TIME time4
SQLSRV_SQLTYPE_TIMESTAMP timestamp
SQLSRV_SQLTYPE_TINYINT TINYINT
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER UNIQUEIDENTIFIER
SQLSRV_SQLTYPE_UDT UDT
SQLSRV_SQLTYPE_VARBINARY varbinary5
SQLSRV_SQLTYPE_VARBINARY($byteCount) varbinary
SQLSRV_SQLTYPE_VARBINARY('max') varbinary(MAX)
SQLSRV_SQLTYPE_VARCHAR, varchar5
SQLSRV_SQLTYPE_VARCHAR($charCount) varchar
SQLSRV_SQLTYPE_VARBINARY('max') varchar(MAX)
SQLSRV_SQLTYPE_XML Xml
  1. Dies ist ein veralteter Typ, der dem varbinary(max)-Typ zugeordnet ist.

  2. Dies ist ein veralteter Typ, der dem neueren nvarchar-Typ zugeordnet ist.

  3. Dies ist ein veralteter Typ, der dem neueren varchar-Typ zugeordnet ist.

  4. Unterstützung für diesen Typ wurde in Version 1.1 der Microsoft-Treiber für PHP für SQL Serverhinzugefügt.

  5. Diese Konstanten sollten in Typvergleichsvorgängen verwendet werden und ersetzen nicht die funktionsähnlichen Konstanten mit ähnlicher Syntax. Beim Binden von Parametern sollten Sie die funktionsähnlichen Konstanten verwenden.

Die folgende Tabelle enthält die SQLTYPE-Konstanten, die Parameter und den Bereich der zulässigen Werte für den Parameter akzeptieren.

SQLTYPE Parameter Für Parameter zulässiger Bereich
SQLSRV_SQLTYPE_CHAR,

SQLSRV_SQLTYPE_VARCHAR,
charCount 1 - 8000
SQLSRV_SQLTYPE_NCHAR,

SQLSRV_SQLTYPE_NVARCHAR,
charCount 1 - 4000
SQLSRV_SQLTYPE_BINARY,

SQLSRV_SQLTYPE_VARBINARY
byteCount 1 - 8000
SQLSRV_SQLTYPE_DECIMAL

SQLSRV_SQLTYPE_NUMERIC
precision (Genauigkeit) 1 - 38
SQLSRV_SQLTYPE_DECIMAL

SQLSRV_SQLTYPE_NUMERIC
Skalierung 1 - Genauigkeit

Konstanten der Transaktionsisolationsebene

Der TransactionIsolation -Schlüssel, der mit sqlsrv_connectverwendet wird, akzeptiert eine der folgenden Konstanten:

  • SQLSRV_TXN_READ_UNCOMMITTED

  • SQLSRV_TXN_READ_COMMITTED

  • SQLSRV_TXN_REPEATABLE_READ

  • SQLSRV_TXN_SNAPSHOT

  • SQLSRV_TXN_SERIALIZABLE

Konstanten für Cursor und Durchführen eines Bildlaufs

Die folgenden Konstanten geben die Art des Cursors an, den Sie in einem Resultset verwenden können:

  • SQLSRV_CURSOR_FORWARD

  • SQLSRV_CURSOR_STATIC

  • SQLSRV_CURSOR_DYNAMIC

  • SQLSRV_CURSOR_KEYSET

  • SQLSRV_CURSOR_CLIENT_BUFFERED

Die folgenden Konstanten geben an, welche Zeile im Resultset ausgewählt werden soll:

  • SQLSRV_SCROLL_NEXT

  • SQLSRV_SCROLL_PRIOR

  • SQLSRV_SCROLL_FIRST

  • SQLSRV_SCROLL_LAST

  • SQLSRV_SCROLL_ABSOLUTE

  • SQLSRV_SCROLL_RELATIVE

Weitere Informationen zu diesen Konstanten finden Sie unter Specifying a Cursor Type and Selecting Rows.

Weitere Informationen

API-Referenz für den SQLSRV-Treiber