Konstanten (Microsoft-Treiber für PHP für SQL Server)
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 |
- 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 |
Dies ist ein veralteter Typ, der dem varbinary(max)-Typ zugeordnet ist.
Dies ist ein veralteter Typ, der dem neueren nvarchar-Typ zugeordnet ist.
Dies ist ein veralteter Typ, der dem neueren varchar-Typ zugeordnet ist.
Unterstützung für diesen Typ wurde in Version 1.1 der Microsoft-Treiber für PHP für SQL Serverhinzugefügt.
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.