Sdílet prostřednictvím


Konstanty (ovladače Microsoftu pro PHP pro SQL Server)

Stáhnout ovladač PHP

Toto téma popisuje konstanty, které jsou definovány ovladači Microsoft pro PHP pro SQL Server.

konstanty ovladače PDO_SQLSRV

Konstanty uvedené na webu PDO jsou platné v ovladačích Microsoftu pro PHP pro SQL Server.

Následující popis konstant specifických pro Microsoft v ovladači PDO_SQLSRV.

Konstanty na úrovni izolace transakcí

Klíč TransactionIsolation , který se používá s pdO::__construct, přijímá jednu z následujících konstant:

  • PdO::SQLSRV_TXN_READ_UNCOMMITTED

  • PDO::SQLSRV_TXN_READ_COMMITTED

  • PDO::SQLSRV_TXN_REPEATABLE_READ

  • PDO::SQLSRV_TXN_SNAPSHOT

  • PDO::SQLSRV_TXN_SERIALIZABLE

Další informace o klíči TransactionIsolation naleznete v tématu Možnosti připojení.

Kódovací konstanty

Atribut PDO::SQLSRV_ATTR_ENCODING lze předat PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn a PDOStatement::bindParam.

Dostupné hodnoty předávané do PDO::SQLSRV_ATTR_ENCODING jsou

konstanta ovladače PDO_SQLSRV Description
PDO::SQLSRV_ENCODING_BINARY Data jsou nezpracovaný bajtový stream ze serveru bez nutnosti kódování nebo překladu.

Není platné pro pdo::setAttribute.
PDO::SQLSRV_ENCODING_SYSTEM Data jsou 8bitové znaky, jak je uvedeno na znakové stránce národního prostředí Systému Windows, které je nastaveno v systému. Všechny vícebajtové znaky nebo znaky, které nelze namapovat na tuto znakovou stránku, se nahradí jednobajtovým otazníkem (?).
PDO::SQLSRV_ENCODING_UTF8 Data jsou v kódování UTF-8. Toto je výchozí kódování.
PDO::SQLSRV_ENCODING_DEFAULT Používá pdo::SQLSRV_ENCODING_SYSTEM, pokud je zadán během připojení.

Pokud je zadané v příkazu prepare, použijte kódování připojení.

Časový limit dotazu

PDO::SQLSRV_ATTR_QUERY_TIMEOUT atribut je libovolné nezáporné celé číslo představující dobu časového limitu v sekundách. Nula (0) je výchozí hodnota a znamená žádný časový limit.

Atribut PDO::SQLSRV_ATTR_QUERY_TIMEOUT můžete zadat pomocí PDOStatement::setAttribute, PDO::setAttribute a PDO::prepare.

Přímé nebo připravené spuštění

Pomocí atributu PDO::SQLSRV_ATTR_DIRECT_QUERY můžete vybrat přímé spuštění dotazu nebo připravené spuštění příkazu. PDO::SQLSRV_ATTR_DIRECT_QUERY lze nastavit pomocí PDO::prepare nebo PDO::setAttribute. Další informace o pdO::SQLSRV_ATTR_DIRECT_QUERY naleznete v tématu Přímé spuštění příkazu a připravené spuštění příkazu v ovladači PDO_SQLSRV.

Zpracování číselných načtení

Atribut PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE lze použít ke zpracování číselných načtení ze sloupců s číselnými typy SQL (bit, celé číslo, smallint, tinyint, float a real). Pokud je PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE nastaveno na hodnotu true, výsledky z celočíselného sloupce jsou reprezentovány jako inty, zatímco SQL floaty a reálná čísla jsou reprezentovány jako floaty. Tento atribut lze nastavit pomocí pdOStatement::setAttribute.

Výchozí chování formátování desetinných míst můžete upravit pomocí atributů PDO::SQLSRV_ATTR_FORMAT_DECIMALS a PDO::SQLSRV_ATTR_DECIMAL_PLACES. Chování těchto atributů je shodné s odpovídajícími možnostmi na straně SQLSRV (FormatDecimals a DecimalPlaces), s výjimkou toho, že výstupní parametry nejsou podporovány pro formátování. Tyto atributy mohou být nastaveny na úrovni připojení nebo příkazu pomocí pdO::setAttribute nebo PDOStatement::setAttribute, ale jakýkoli atribut příkazu přepíše odpovídající atribut připojení. Další podrobnosti najdete v tématu Formátování desetinných řetězců a hodnot peněz (PDO_SQLSRV driver).

Zpracování načítání data a času

PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE určuje, zda mají být načteny typy data a času jako objekty PHP DateTime. Pokud zůstane hodnota nepravdivá, výchozí chování je vrátit je jako řetězce. Tento atribut může být nastaven na úrovni připojení nebo příkazu pomocí pdO::setAttribute nebo PDOStatement::setAttribute, ale atribut příkazu přepíše odpovídající atribut připojení. Další informace naleznete v tématu Postupy: Načtení typů data a času jako objekty PHP DateTime pomocí ovladače PDO_SQLSRV.

Konstanty ovladače SQLSRV

Následující části uvádějí konstanty používané ovladačem SQLSRV.

Konstanty ERR

Následující tabulka uvádí konstanty, které se používají k určení, jestli sqlsrv_errors vrací chyby, upozornění nebo obojí.

Hodnota Description
SQLSRV_ERR_ALL Vrátí se chyby a upozornění vygenerovaná při posledním volání funkce sqlsrv . Toto je výchozí hodnota.
SQLSRV_ERR_ERRORS Vrátí se chyby vygenerované při posledním volání funkce sqlsrv .
SQLSRV_ERR_WARNINGS Vrátí se upozornění vygenerovaná při posledním volání funkce sqlsrv .

FETCH – konstanty

V následující tabulce jsou uvedeny konstanty, které slouží k určení typu pole vrácené sqlsrv_fetch_array.

Konstanta SQLSRV Description
SQLSRV_FETCH_ASSOC sqlsrv_fetch_array vrátí další řádek dat jako asociativní pole.
SQLSRV_FETCH_BOTH sqlsrv_fetch_array vrátí další řádek dat jako pole s číselnými i asociativními klíči. Toto je výchozí hodnota.
SQLSRV_FETCH_NUMERIC sqlsrv_fetch_array vrátí další řádek dat jako číselně indexované pole.

Logování konstant

Tato část uvádí konstanty, které se používají ke změně nastavení protokolování pomocí sqlsrv_configure. Další informace o aktivitě protokolování najdete v tématu Aktivita protokolování.

Následující tabulka uvádí konstanty, které lze použít jako hodnotu pro nastavení LogSubsystems :

Konstanta SQLSRV (celočíselná ekvivalent v závorkách) Description
SQLSRV_LOG_SYSTEM_ALL (-1) Zapne protokolování všech subsystémů.
SQLSRV_LOG_SYSTEM_CONN (2) Zapne protokolování aktivity připojení.
SQLSRV_LOG_SYSTEM_INIT (1) Zapne protokolování inicializační aktivity.
SQLSRV_LOG_SYSTEM_OFF (0) Vypne protokolování.
SQLSRV_LOG_SYSTEM_STMT (4) Zapne protokolování aktivity příkazů.
SQLSRV_LOG_SYSTEM_UTIL (8) Zapne protokolování aktivity chybových funkcí (například handle_error a handle_warning).

Následující tabulka uvádí konstanty, které lze použít jako hodnotu pro nastavení LogSeverity :

Konstanta SQLSRV (celočíselná ekvivalent v závorkách) Description
SQLSRV_LOG_SEVERITY_ALL (-1) Určuje, že se budou protokolovat chyby, varování a oznámení.
SQLSRV_LOG_SEVERITY_ERROR (1) Určuje, že se budou protokolovat chyby.
SQLSRV_LOG_SEVERITY_NOTICE (4) Určuje, že se budou protokolovat oznámení.
SQLSRV_LOG_SEVERITY_WARNING (2) Určuje, že se budou protokolovat upozornění.

Konstanty s možnou hodnotou null

Následující tabulka uvádí konstanty, které můžete použít k určení, zda sloupec má hodnotu null nebo jestli tyto informace nejsou k dispozici. Můžete porovnat hodnotu klíče Nulovatelný vrácenou sqlsrv_field_metadata k určení, zda je sloupec nulovatelný.

Konstanta SQLSRV (celočíselná ekvivalent v závorkách) Description
SQLSRV_NULLABLE_YES (0) Sloupec má hodnotu null.
SQLSRV_NULLABLE_NO (1) Sloupec nemůže mít hodnotu null.
SQLSRV_NULLABLE_UNKNOWN (2) Není známo, jestli je sloupec nulovatelný.

Konstanty PARAM

Následující seznam obsahuje konstanty pro určení směru parametru při volání sqlsrv_query nebo sqlsrv_prepare.

Konstanta SQLSRV Description
SQLSRV_PARAM_IN Označuje vstupní parametr.
SQLSRV_PARAM_INOUT Označuje obousměrný parametr.
SQLSRV_PARAM_OUT Označuje výstupní parametr.

PHPTYPE – konstanty

Následující tabulka uvádí konstanty, které slouží k popisu datových typů PHP. Informace o datových typech PHP naleznete v tématu Typy PHP.

Konstanta SQLSRV Datový typ PHP
SQLSRV_PHPTYPE_INT Integer
SQLSRV_PHPTYPE_DATETIME Datum a čas
SQLSRV_PHPTYPE_FLOAT Plovat
SQLSRV_PHPTYPE_STREAM($encoding1) Stream
SQLSRV_PHPTYPE_STRING($encoding1) String
  1. SQLSRV_PHPTYPE_STREAM a SQLSRV_PHPTYPE_STRING přijmout parametr, který určuje kódování datového proudu. Následující tabulka obsahuje konstanty SQLSRV, které jsou přijatelné parametry, a popis odpovídajícího kódování.
Konstanta SQLSRV Description
SQLSRV_ENC_BINARY Data se vrátí jako nezpracovaný bajtový stream ze serveru bez nutnosti kódování nebo překladu.
SQLSRV_ENC_CHAR Data se vrací v 8bitových znacích podle kódové stránky místního nastavení systému Windows, které je nastaveno v systému. Všechny vícebajtové znaky nebo znaky, které nelze namapovat na tuto znakovou stránku, se nahradí jednobajtovým otazníkem (?).

Toto je výchozí kódování.
"UTF-8" Data se vrátí v kódování UTF-8. Tato konstanta byla přidána ve verzi 1.1 ovladačů Microsoft pro PHP pro SQL Server. Další informace o podpoře UTF-8 naleznete v tématu Postupy: Odesílání a načítání dat UTF-8 pomocí Built-In podpora UTF-8.

Poznámka:

Pokud používáte SQLSRV_PHPTYPE_STREAM nebo SQLSRV_PHPTYPE_STRING, musí být zadáno kódování. Pokud není zadán žádný parametr, vrátí se chyba.

Další informace o těchto konstantách naleznete v tématu Postupy: Určení datových typů PHP, Postupy: Načtení znakových dat jako datového proudu pomocí ovladače SQLSRV.

Konstanty SQLTYPE

Následující tabulka uvádí konstanty, které slouží k popisu datových typů SQL Serveru. Některé konstanty jsou podobné funkcím a mohou přijímat parametry, které odpovídají přesnosti, měřítku a/nebo délce. Při vazbě parametrů by se měly použít konstanty podobné funkci. Pro porovnávání typů se vyžadují standardní konstanty (nefunkčně podobné). Informace o datových typech SQL Serveru naleznete v tématu Datové typy (Transact-SQL). Informace o přesnosti, měřítku a délce naleznete v tématu Přesnost, Měřítko a Délka (Transact-SQL).

Konstanta SQLSRV Datový typ SQL Serveru
SQLSRV_SQLTYPE_BIGINT bigint
SQLSRV_SQLTYPE_BINARY binární
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 desetinné číslo5
SQLSRV_SQLTYPE_DECIMAL($precision; $scale) desítkové číslo
SQLSRV_SQLTYPE_FLOAT float
SQLSRV_SQLTYPE_IMAGE obrázek1
SQLSRV_SQLTYPE_INT int
SQLSRV_SQLTYPE_MONEY peníze
SQLSRV_SQLTYPE_NCHAR nchar5
SQLSRV_SQLTYPE_NCHAR($charCount) nchar
SQLSRV_SQLTYPE_NUMERIC číslo5
SQLSRV_SQLTYPE_NUMERIC($precision; $scale) číselný
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 drobné peníze
SQLSRV_SQLTYPE_TEXT text3
SQLSRV_SQLTYPE_TIME čas4
SQLSRV_SQLTYPE_TIMESTAMP časové razítko
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_VARCHAR('max') varchar(MAX)
SQLSRV_SQLTYPE_XML xml
  1. Toto je starší datový typ, který se mapuje na datový typ varbinary(max).

  2. Toto je starší typ, který se mapuje na novější typ nvarchar.

  3. Toto je starší typ, který se mapuje na novější databázový typ varchar.

  4. Podpora pro tento typ byla přidána ve verzi 1.1 ovladačů Microsoft pro PHP pro SQL Server.

  5. Tyto konstanty by se měly používat v operacích porovnání typů a neměly by být nahrazovány konstantami podobnými funkcím s podobnou syntaxí. U parametrů vazby byste měli použít konstanty podobné funkci.

Následující tabulka uvádí konstanty SQLTYPE, které přijímají parametry a rozsah hodnot povolených pro parametr.

SQLTYPE Parameter Povolený rozsah pro parametr
SQLSRV_SQLTYPE_CHAR,

SQLSRV_SQLTYPE_VARCHAR
počet znaků 1 - 8000
SQLSRV_SQLTYPE_NCHAR,

SQLSRV_SQLTYPE_NVARCHAR
počet znaků 1 - 4000
SQLSRV_SQLTYPE_BINARY,

SQLSRV_SQLTYPE_VARBINARY
Bytecount 1 - 8000
SQLSRV_SQLTYPE_DECIMAL

SQLSRV_SQLTYPE_NUMERIC
přesnost 1 - 38
SQLSRV_SQLTYPE_DECIMAL,

SQLSRV_SQLTYPE_NUMERIC
škálování 1 – přesnost

Konstanty na úrovni izolace transakcí

Klíč TransactionIsolation , který se používá s sqlsrv_connect, přijímá jednu z následujících konstant:

  • SQLSRV_TXN_READ_UNCOMMITTED

  • SQLSRV_TXN_READ_COMMITTED

  • SQLSRV_TXN_REPEATABLE_READ

  • SQLSRV_TXN_SNAPSHOT

  • SQLSRV_TXN_SERIALIZABLE

Konstanty kurzoru a posouvání

Následující konstanty určují typ kurzoru, který můžete použít v sadě výsledků:

  • SQLSRV_CURSOR_FORWARD

  • SQLSRV_CURSOR_STATIC

  • SQLSRV_CURSOR_DYNAMIC

  • SQLSRV_CURSOR_KEYSET

  • SQLSRV_CURSOR_CLIENT_BUFFERED

Následující konstanty určují, který řádek se má vybrat v sadě výsledků:

  • SQLSRV_SCROLL_NEXT

  • SQLSRV_SCROLL_PRIOR

  • SQLSRV_SCROLL_FIRST

  • SQLSRV_SCROLL_LAST

  • SQLSRV_SCROLL_ABSOLUTE

  • SQLSRV_SCROLL_RELATIVE

Informace o používání těchto konstant naleznete v tématu Určení typu kurzoru a výběru řádků.

Viz také

Referenční informace k rozhraní API ovladače SQLSRV