Udostępnij przez


Stałe (sterowniki firmy Microsoft dla języka PHP dla programu SQL Server)

Pobieranie sterownika PHP

W tym temacie omówiono stałe zdefiniowane przez sterowniki firmy Microsoft dla języka PHP dla programu SQL Server.

Stałe dla sterownika PDO_SQLSRV

Stałe wymienione w witrynie internetowej PDO są prawidłowe w sterownikach firmy Microsoft dla języka PHP dla programu SQL Server.

Poniżej opisano stałe specyficzne dla firmy Microsoft w sterowniku PDO_SQLSRV.

Stałe poziomów izolacji transakcji

Klucz TransactionIsolation , który jest używany z pdO::__construct, akceptuje jedną z następujących stałych:

  • PdO::SQLSRV_TXN_READ_UNCOMMITTED

  • PDO::SQLSRV_TXN_READ_COMMITTED

  • PDO::SQLSRV_TXN_REPEATABLE_READ

  • PDO::SQLSRV_TXN_SNAPSHOT

  • PDO::SQLSRV_TXN_SERIALIZABLE

Aby uzyskać więcej informacji na temat klucza TransactionIsolation , zobacz Opcje połączenia.

Stałe kodowania

Atrybut PDO::SQLSRV_ATTR_ENCODING można przekazać do PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn i PDOStatement::bindParam.

Dostępne wartości przekazywane do PDO::SQLSRV_ATTR_ENCODING to:

stała sterownika PDO_SQLSRV Description
PDO::SQLSRV_ENCODING_BINARY Dane są nieprzetworzonym strumieniem bajtów z serwera bez kodowania ani tłumaczenia.

Nieprawidłowy dla pdO::setAttribute.
PDO::SQLSRV_ENCODING_SYSTEM Dane to znaki 8-bitowe, zgodnie z określoną stroną kodową ustawień regionalnych systemu Windows, które są ustawione w systemie. Wszelkie znaki wielobajtowe lub znaki, które nie są mapowane na tę stronę kodową, są zastępowane znakiem zapytania jednobajtowego (?).
PDO::SQLSRV_ENCODING_UTF8 Dane są w kodowaniu UTF-8. Jest to kodowanie domyślne.
PDO::SQLSRV_ENCODING_DEFAULT Używa PDO::SQLSRV_ENCODING_SYSTEM, jeśli zostało to określone podczas połączenia.

Użyj kodowania połączenia, jeśli zostanie określone w instrukcji przygotowawczej.

Limit czasu zapytania

Atrybut PDO::SQLSRV_ATTR_QUERY_TIMEOUT jest dowolną nieujemną liczbą całkowitą reprezentującą okres limitu czasu w sekundach. Zero (0) jest wartością domyślną i oznacza brak limitu czasu.

Możesz określić atrybut PDO::SQLSRV_ATTR_QUERY_TIMEOUT za pomocą PDOStatement::setAttribute, PDO::setAttribute i PDO::prepare.

Bezpośrednie lub przygotowane wykonanie

Możesz wybrać bezpośrednie wykonanie zapytania lub przygotowane wykonanie instrukcji za pomocą atrybutu PDO::SQLSRV_ATTR_DIRECT_QUERY. PDO::SQLSRV_ATTR_DIRECT_QUERY można ustawić za pomocą PDO::prepare lub PDO::setAttribute. Aby uzyskać więcej informacji na temat PDO::SQLSRV_ATTR_DIRECT_QUERY, zobacz Wykonywanie instrukcji bezpośredniej i Przygotowane wykonywanie instrukcji w sterowniku PDO_SQLSRV.

Obsługa operacji z liczbami

Atrybut PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE może służyć do obsługi pobierania liczbowego z kolumn z numerycznymi typami SQL (bit, integer, smallint, tinyint, float i real). Gdy atrybut PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE jest ustawiony na true, wyniki z kolumny całkowitej są reprezentowane jako liczby całkowite, podczas gdy liczby typu float w SQL są reprezentowane jako liczby zmiennoprzecinkowe. Ten atrybut można ustawić za pomocą atrybutu PDOStatement::setAttribute.

Domyślne zachowanie formatowania dziesiętnego można modyfikować za pomocą atrybutów PDO::SQLSRV_ATTR_FORMAT_DECIMALS i PDO::SQLSRV_ATTR_DECIMAL_PLACES. Zachowanie tych atrybutów jest identyczne z odpowiednimi opcjami po stronie SQLSRV (FormatDecimals i DecimalPlaces), z tą różnicą, że parametry wyjściowe nie są obsługiwane do formatowania. Te atrybuty można ustawić na poziomie połączenia lub instrukcji z pdO::setAttribute lub PDOStatement::setAttribute, ale każdy atrybut instrukcji zastąpi odpowiedni atrybut połączenia. Aby uzyskać więcej informacji, zobacz Formatowanie ciągów dziesiętnych i wartości pieniężnych (PDO_SQLSRV Driver).

Obsługa pobierania dat i godzin

PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE określa, czy mają być pobierane typy dat i godzin jako obiekty PHP DateTime. Jeśli pozostawiono wartość false, domyślne zachowanie to zwracanie ich jako ciągów. Ten atrybut może być ustawiony na poziomie połączenia lub instrukcji z pdO::setAttribute lub PDOStatement::setAttribute, ale atrybut instrukcji zastąpi odpowiedni atrybut połączenia. Aby uzyskać więcej informacji, zobacz How to: Retrieve Date and Time Types as PHP DateTime Objects Using the PDO_SQLSRV Driver (Jak pobrać typy dat i godzin jako obiekty typu data/godzina w języku PHP przy użyciu sterownika PDO_SQLSRV).

Stałe sterowników SQLSRV

W poniższych sekcjach wymieniono stałe używane przez sterownik SQLSRV.

Stałe ERR

W poniższej tabeli wymieniono stałe używane do określania, czy sqlsrv_errors zwraca błędy, ostrzeżenia lub oba te elementy.

Wartość Description
SQLSRV_ERR_ALL Zwracane są błędy i ostrzeżenia wygenerowane podczas ostatniego wywołania funkcji sqlsrv . Jest to wartość domyślna.
SQLSRV_ERR_ERRORS Zwracane są błędy wygenerowane podczas ostatniego wywołania funkcji sqlsrv .
SQLSRV_ERR_WARNINGS Zwracane są ostrzeżenia wygenerowane podczas ostatniego wywołania funkcji sqlsrv .

Stałe pobierania

W poniższej tabeli wymieniono stałe używane do określania typu tablicy zwracanej przez sqlsrv_fetch_array.

Stała SQLSRV Description
SQLSRV_FETCH_ASSOC sqlsrv_fetch_array zwraca następny wiersz danych jako tablicę asocjacyjną.
SQLSRV_FETCH_BOTH sqlsrv_fetch_array zwraca następny wiersz danych jako tablicę z kluczami liczbowymi i asocjacyjnymi. Jest to wartość domyślna.
SQLSRV_FETCH_NUMERIC sqlsrv_fetch_array zwraca następny wiersz danych jako tablicę indeksowaną liczbowo.

Stałe rejestrowania

W tej sekcji wymieniono stałe używane do zmiany ustawień rejestrowania przy użyciu sqlsrv_configure. Aby uzyskać więcej informacji na temat działań rejestrowania, zobacz Rejestrowanie aktywności.

W poniższej tabeli wymieniono stałe, które mogą być używane jako wartość ustawienia LogSubsystems :

Stała SQLSRV (odpowiednik liczb całkowitych w nawiasach) Description
SQLSRV_LOG_SYSTEM_ALL (-1) Włącza rejestrowanie wszystkich podsystemów.
SQLSRV_LOG_SYSTEM_CONN (2) Włącza rejestrowanie aktywności połączenia.
SQLSRV_LOG_SYSTEM_INIT (1) Włącza rejestrowanie działań inicjowania.
SQLSRV_LOG_SYSTEM_OFF (0) Włącza wylogowywania.
SQLSRV_LOG_SYSTEM_STMT (4) Włącza rejestrowanie działania instrukcji.
SQLSRV_LOG_SYSTEM_UTIL (8) Włącza rejestrowanie działań funkcji błędów (takich jak handle_error i handle_warning).

W poniższej tabeli wymieniono stałe, które mogą być używane jako wartość ustawienia LogSeverity :

Stała SQLSRV (odpowiednik liczb całkowitych w nawiasach) Description
SQLSRV_LOG_SEVERITY_ALL (-1) Określa, że błędy, ostrzeżenia i powiadomienia będą rejestrowane.
SQLSRV_LOG_SEVERITY_ERROR (1) Określa, że błędy zostaną zarejestrowane.
SQLSRV_LOG_SEVERITY_NOTICE (4) Określa, że powiadomienia zostaną zarejestrowane.
SQLSRV_LOG_SEVERITY_WARNING (2) Określa, że ostrzeżenia zostaną zarejestrowane.

Stałe nullable

W poniższej tabeli wymieniono stałe, których można użyć do określenia, czy kolumna jest nullowalna, czy te informacje nie są dostępne. Możesz porównać wartość klucza Nullable zwróconą przez sqlsrv_field_metadata, aby określić możliwość przyjmowania wartości null przez kolumnę.

Stała SQLSRV (odpowiednik liczb całkowitych w nawiasach) Description
SQLSRV_NULLABLE_YES (0) Kolumna może przyjmować wartość null.
SQLSRV_NULLABLE_NO (1) Kolumna nie może zawierać wartości null.
SQLSRV_NULLABLE_UNKNOWN (2) Nie wiadomo, czy kolumna jest podatna na wartości NULL.

Stałe PARAM

Poniższa lista zawiera stałe do określania kierunku parametru podczas wywoływania sqlsrv_query lub sqlsrv_prepare.

Stała SQLSRV Description
SQLSRV_PARAM_IN Wskazuje parametr wejściowy.
SQLSRV_PARAM_INOUT Wskazuje dwukierunkowy parametr.
SQLSRV_PARAM_OUT Wskazuje parametr wyjściowy.

Stałe PHPTYPE

W poniższej tabeli wymieniono stałe używane do opisywania typów danych PHP. Aby uzyskać informacje o typach danych PHP, zobacz Typy PHP.

Stała SQLSRV Typ danych PHP
SQLSRV_PHPTYPE_INT Integer
SQLSRV_PHPTYPE_DATETIME Data i czas
SQLSRV_PHPTYPE_FLOAT Pływak
SQLSRV_PHPTYPE_STREAM($encoding1) Stream
SQLSRV_PHPTYPE_STRING($encoding1) Sznurek
  1. SQLSRV_PHPTYPE_STREAM i SQLSRV_PHPTYPE_STRING zaakceptować parametr określający kodowanie strumienia. Poniższa tabela zawiera stałe SQLSRV, które są akceptowalnymi parametrami, oraz opis odpowiedniego kodowania.
Stała SQLSRV Description
SQLSRV_ENC_BINARY Dane są zwracane jako nieprzetworzony strumień bajtów z serwera bez wykonywania kodowania lub tłumaczenia.
SQLSRV_ENC_CHAR Dane są zwracane w 8-bitowych znakach, jak określono na stronie kodowej ustawień regionalnych systemu Windows ustawionych w systemie. Wszelkie znaki wielobajtowe lub znaki, które nie są mapowane na tę stronę kodową, są zastępowane znakiem zapytania jednobajtowego (?).

Jest to kodowanie domyślne.
"UTF-8" Dane są zwracane w kodowaniu UTF-8. Ta stała została dodana w wersji 1.1 sterowników firmy Microsoft dla języka PHP dla programu SQL Server. Aby uzyskać więcej informacji na temat obsługi protokołu UTF-8, zobacz Instrukcje: wysyłanie i pobieranie danych UTF-8 przy użyciu Built-In obsługi protokołu UTF-8.

Uwaga / Notatka

W przypadku używania SQLSRV_PHPTYPE_STREAM lub SQLSRV_PHPTYPE_STRING należy określić kodowanie. Jeśli nie podano parametru, zostanie zwrócony błąd.

Aby uzyskać więcej informacji na temat tych stałych, zobacz Instrukcje: Jak określić typy danych PHP, Jak pobierać dane znakowe jako strumień przy użyciu sterownika SQLSRV.

Stałe SQLTYPE

W poniższej tabeli wymieniono stałe używane do opisywania typów danych programu SQL Server. Niektóre stałe są podobne do funkcji i mogą przyjmować parametry, które odpowiadają precyzji, skali i/lub długości. Podczas wiązania parametrów należy używać stałych w formie przypominającej funkcję. W przypadku porównań typów wymagane są standardowe stałe (inne niż funkcja). Aby uzyskać informacje o typach danych programu SQL Server, zobacz Typy danych (Transact-SQL). Aby uzyskać informacje o precyzji, skali i długości, zobacz Precyzja, Skala i Długość (Transact-SQL).

Stała SQLSRV Typ danych programu SQL Server
SQLSRV_SQLTYPE_BIGINT bigint
SQLSRV_SQLTYPE_BINARY binarny
SQLSRV_SQLTYPE_BIT bit
SQLSRV_SQLTYPE_CHAR znak5
SQLSRV_SQLTYPE_CHAR($charCount) char
SQLSRV_SQLTYPE_DATE data4
SQLSRV_SQLTYPE_DATETIME data/godzina
SQLSRV_SQLTYPE_DATETIME2 datetime24
SQLSRV_SQLTYPE_DATETIMEOFFSET (typ danych w SQL Server odpowiedzialny za uwzględnianie stref czasowych) datetimeoffset4
SQLSRV_SQLTYPE_DECIMAL liczba dziesiętna5
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) liczba dziesiętna
SQLSRV_SQLTYPE_FLOAT float
SQLSRV_SQLTYPE_IMAGE obraz1
SQLSRV_SQLTYPE_INT int
SQLSRV_SQLTYPE_MONEY pieniądze
SQLSRV_SQLTYPE_NCHAR nchar5
SQLSRV_SQLTYPE_NCHAR($charCount) nchar
SQLSRV_SQLTYPE_NUMERIC numeryczny5
SQLSRV_SQLTYPE_NUMERIC($precision, $scale) numeryczny
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 tekst3
SQLSRV_SQLTYPE_TIME godzina4
SQLSRV_SQLTYPE_TIMESTAMP sygnatura czasowa
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 powiedział:
SQLSRV_SQLTYPE_VARCHAR('max') varchar(MAX)
SQLSRV_SQLTYPE_XML XML
  1. Jest to starszy typ, który mapuje na typ varbinary(max).

  2. Jest to starszy typ mapujący na nowszy typ nvarchar.

  3. Jest to starszy typ danych mapowany na nowszy typ danych varchar.

  4. Dodano obsługę tego typu w wersji 1.1 sterowników firmy Microsoft dla języka PHP dla programu SQL Server.

  5. Te stałe powinny być używane w operacjach porównania typów i nie zastępują stałych przypominających funkcję o podobnej składni. W przypadku parametrów powiązania należy użyć stałych o charakterze funkcji.

W poniższej tabeli wymieniono stałe SQLTYPE, które akceptują parametry i zakres wartości dozwolonych dla parametru.

TYP SQL Parameter Dozwolony zakres parametru
SQLSRV_SQLTYPE_CHAR,

SQLSRV_SQLTYPE_VARCHAR
Charcount 1 - 8000
SQLSRV_SQLTYPE_NCHAR,

SQLSRV_SQLTYPE_NVARCHAR
Charcount 1 - 4000
SQLSRV_SQLTYPE_BINARY,

SQLSRV_SQLTYPE_VARBINARY
liczba bajtów 1 - 8000
SQLSRV_SQLTYPE_DECIMAL

SQLSRV_SQLTYPE_NUMERIC
precyzja 1 - 38
SQLSRV_SQLTYPE_DECIMAL,

SQLSRV_SQLTYPE_NUMERIC
skala 1 — precyzja

Stałe poziomów izolacji transakcji

Klucz TransactionIsolation , który jest używany z sqlsrv_connect, akceptuje jedną z następujących stałych:

  • SQLSRV_TXN_READ_UNCOMMITTED

  • SQLSRV_TXN_READ_COMMITTED

  • SQLSRV_TXN_REPEATABLE_READ

  • SQLSRV_TXN_SNAPSHOT

  • SQLSRV_TXN_SERIALIZABLE

Stałe kursora i przewijania

Następujące stałe określają rodzaj kursora, którego można użyć w zestawie wyników:

  • SQLSRV_CURSOR_FORWARD

  • SQLSRV_CURSOR_STATIC

  • SQLSRV_CURSOR_DYNAMIC

  • SQLSRV_CURSOR_KEYSET

  • SQLSRV_CURSOR_CLIENT_BUFFERED

Następujące stałe określają wiersz do wybrania w zestawie wyników:

  • SQLSRV_SCROLL_NEXT

  • SQLSRV_SCROLL_PRIOR

  • SQLSRV_SCROLL_FIRST

  • SQLSRV_SCROLL_LAST

  • SQLSRV_SCROLL_ABSOLUTE

  • SQLSRV_SCROLL_RELATIVE

Aby uzyskać informacje na temat używania tych stałych, zobacz Określanie typu kursora i Wybieranie wierszy.

Zobacz też

Dokumentacja interfejsu API sterownika SQLSRV