Megosztás:


Állandók (Microsoft-illesztőprogramok PHP-hez az SQL Serverhez)

PHP-illesztőprogram letöltése

Ez a témakör az SQL Serverhez készült PHP-hez készült Microsoft Drivers által meghatározott állandókat ismerteti.

PDO_SQLSRV illesztőprogram-állandók

Az PDO webhelyén felsorolt állandók érvényesek a Microsoft Drivers for PHP for SQL Serverhez készült PHP-illesztőprogramokban.

Az alábbiakban az PDO_SQLSRV illesztőprogram Microsoft-specifikus állandóit ismertetjük.

Tranzakcióelkülönítési szint állandói

A TransactionIsolation kulcs, amelyet a PDO::__construct használ, a következő állandók egyikét támogatja:

  • Oem::SQLSRV_TXN_READ_UNCOMMITTED

  • Oem::SQLSRV_TXN_READ_COMMITTED

  • PDO::SQLSRV_TXN_REPEATABLE_READ

  • PDO::SQLSRV_TXN_SNAPSHOT

  • PDO::SQLSRV_TXN_SERIALIZABLE

A TransactionIsolation kulccsal kapcsolatos további információkért tekintse meg a Kapcsolat beállításai című témakört.

Kódolási állandók

Az PDO::SQLSRV_ATTR_ENCODING attribútum átadható a PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn és PDOStatement::bindParam.

A PDO::SQLSRV_ATTR_ENCODING számára átadható értékek a következők:

PDO_SQLSRV illesztőprogram-állandó Description
PDO::SQLSRV_ENCODING_BINARY Az adatok nyers bájtfolyamok a kiszolgálóról kódolás vagy fordítás nélkül.

Nem érvényes a PDO::setAttribute számára.
PDO::SQLSRV_ENCODING_SYSTEM Az adatok a rendszeren beállított Windows területi beállítás kódlapján megadott 8 bites karakterek. Minden többszörös bájtos karakter vagy karakter, amely nem illeszkedik ebbe a kódlapba, egyszimple bájtos kérdőjellel (?) lesz helyettesítve.
PDO::SQLSRV_ENCODING_UTF8 Az adatok az UTF-8 kódolásban találhatóak. Ez az alapértelmezett kódolás.
PDO::SQLSRV_ENCODING_DEFAULT A PDO::SQLSRV_ENCODING_SYSTEM-t használja, ha a kapcsolat során meg van adva.

Használja a kapcsolat kódolását, ha egy előkészítési utasításban van megadva.

Lekérdezés időkorlátja

A PDO::SQLSRV_ATTR_QUERY_TIMEOUT attribútum bármely nem negatív egész szám, amely másodpercben jelöli az időtúllépési időszakot. A nulla (0) az alapértelmezett érték, és azt jelenti, hogy nincs időtúllépés.

Megadhatja a PDO::SQLSRV_ATTR_QUERY_TIMEOUT attribútumot a PDOStatement::setAttribute, PDO::setAttribute vagy PDO::prepare attribútumokkal.

Közvetlen vagy előkészített végrehajtás

Kiválaszthatja a közvetlen lekérdezés-végrehajtást vagy az előkészített utasítás-végrehajtást a PDO::SQLSRV_ATTR_DIRECT_QUERY attribútummal. PDO::SQLSRV_ATTR_DIRECT_QUERY beállítható a PDO::prepare vagy a PDO::setAttribute használatával. További információért a PDO::SQLSRV_ATTR_DIRECT_QUERY attribútumról lásd: Közvetlen utasítás-végrehajtás és előkészített utasítás végrehajtása a PDO_SQLSRV illesztőprogramban.

Numerikus lekérések kezelése

A PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE attribútum numerikus SQL-típusokkal (bit, integer, smallint, tinyint, float és real) rendelkező oszlopok numerikus lekéréseinek kezelésére használható. Ha a PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE értéke igaz, az egész szám oszlopból származó eredmények integerként jelennek meg, míg az SQL lebegőpontos számok és valós értékek floatként jelennek meg. Ez az attribútum a PDOStatement::setAttribute beállítással állítható be.

Az alapértelmezett decimális formázási viselkedést az OEM::SQLSRV_ATTR_FORMAT_DECIMALS és az OEM::SQLSRV_ATTR_DECIMAL_PLACES attribútumokkal módosíthatja. Ezeknek az attribútumoknak a viselkedése megegyezik az SQLSRV oldal megfelelő beállításaival (FormatDecimals és DecimalPlaces), azzal a kivételsel, hogy a kimeneti paramok formázása nem támogatott. Ezek az attribútumok a kapcsolat vagy az utasítás szintjén állíthatók be a PDO::setAttribute vagy a PDOStatement::setAttribute metódusokkal, de bármely utasításattribútum felülírja a megfelelő kapcsolat attribútumot. További részletekért lásd: Decimális sztringek és pénzértékek formázása (PDO_SQLSRV illesztő).

Dátum- és időbeolvasások kezelése

Az oem::SQLSRV_ATTR_FETCHES_DATETIME_TYPE megadja, hogy a dátum- és időtípusokat PHP DateTime-objektumként kell-e lekérni. Ha hamis marad, az alapértelmezett viselkedés az, hogy sztringként adja vissza őket. Ez az attribútum a kapcsolat vagy az utasítás szintjén állítható be a PDO::setAttribute vagy PDOStatement::setAttribute segítségével, de az utasítás szintű attribútum felülírja a megfelelő kapcsolat szintű attribútumot. További információ : Dátum- és időtípusok lekérése PHP DateTime-objektumként az PDO_SQLSRV illesztőprogram használatával.

SQLSRV illesztőprogram-állandók

Az alábbi szakaszok az SQLSRV-illesztő által használt állandókat sorolják fel.

ERR-állandók

Az alábbi táblázat felsorolja azokat az állandókat, amelyek alapján megadhatja, hogy sqlsrv_errors hibákat, figyelmeztetéseket vagy mindkettőt ad vissza.

Érték Description
SQLSRV_ERR_ALL A rendszer az sqlsrv függvény legutóbbi hívása során generált hibákat és figyelmeztetéseket adja vissza. Ez az alapértelmezett érték.
SQLSRV_ERR_ERRORS A rendszer az sqlsrv függvény legutóbbi hívása során generált hibákat adja vissza.
SQLSRV_ERR_WARNINGS A rendszer az sqlsrv függvény legutóbbi hívása során generált figyelmeztetéseket adja vissza.

FETCH-állandók

Az alábbi táblázat azokat az állandókat sorolja fel, amelyek a sqlsrv_fetch_array által visszaadott tömb típusának megadására szolgálnak.

SQLSRV-állandó Description
SQLSRV_FETCH_ASSOC sqlsrv_fetch_array asszociatív tömbként adja vissza a következő adatsort.
SQLSRV_FETCH_BOTH sqlsrv_fetch_array numerikus és asszociatív kulcsokkal rendelkező tömbként adja vissza a következő adatsort. Ez az alapértelmezett érték.
SQLSRV_FETCH_NUMERIC sqlsrv_fetch_array numerikus indexelt tömbként adja vissza a következő adatsort.

Naplózási állandók

Ez a szakasz azokat az állandókat sorolja fel, amelyek a naplózási beállítások sqlsrv_configure használatával történő módosítására szolgálnak. A naplózási tevékenységről további információt a Naplózási tevékenység című témakörben talál.

Az alábbi táblázat a LogSubsystems beállítás értékeként használható állandókat sorolja fel:

SQLSRV-állandó (egész szám egyenértékű zárójelben) Description
SQLSRV_LOG_SYSTEM_ALL (-1) Bekapcsolja az összes alrendszer naplózását.
SQLSRV_LOG_SYSTEM_CONN (2) Bekapcsolja a kapcsolati tevékenység naplózását.
SQLSRV_LOG_SYSTEM_INIT (1) Bekapcsolja az inicializálási tevékenység naplózását.
SQLSRV_LOG_SYSTEM_OFF (0) Kikapcsolja a naplózást.
SQLSRV_LOG_SYSTEM_STMT (4) Bekapcsolja az utasítástevékenység naplózását.
SQLSRV_LOG_SYSTEM_UTIL (8) Bekapcsolja a hibakezelési függvények (mint például handle_error és handle_warning) naplózását.

Az alábbi táblázat a LogSeverity beállítás értékeként használható állandókat sorolja fel:

SQLSRV-állandó (egész szám egyenértékű zárójelben) Description
SQLSRV_LOG_SEVERITY_ALL (-1) Megadja, hogy a rendszer naplózza a hibákat, figyelmeztetéseket és értesítéseket.
SQLSRV_LOG_SEVERITY_ERROR (1) Megadja, hogy a rendszer naplózza a hibákat.
SQLSRV_LOG_SEVERITY_NOTICE (4) Megadja, hogy a rendszer naplózza az értesítéseket.
SQLSRV_LOG_SEVERITY_WARNING (2) Megadja, hogy a rendszer naplózza a figyelmeztetéseket.

Null értékű állandók

Az alábbi táblázat felsorolja azokat az állandókat, amelyekkel megállapíthatja, hogy egy oszlop null értékű-e, vagy hogy ezek az információk nem érhetők-e el. Összehasonlíthatja a sqlsrv_field_metadata által visszaadott Nullable kulcs értékét az oszlop null értékű állapotának meghatározásához.

SQLSRV-állandó (egész szám egyenértékű zárójelben) Description
SQLSRV_NULLABLE_YES (0) Az oszlop null értékű.
SQLSRV_NULLABLE_NO (1) Az oszlop nem lehet null értékű.
SQLSRV_NULLABLE_UNKNOWN (2) Nem ismert, hogy az oszlop null értékű-e.

PARAM-állandók

Az alábbi lista a paraméter irányának megadására szolgáló állandókat tartalmazza, amikor meghívja sqlsrv_query vagy sqlsrv_prepare.

SQLSRV állandó Description
SQLSRV_PARAM_IN Bemeneti paramétert jelez.
SQLSRV_PARAM_INOUT Kétirányú paramétert jelez.
SQLSRV_PARAM_OUT Kimeneti paramétert jelez.

PHPTYPE-állandók

Az alábbi táblázat a PHP-adattípusok leírására használt állandókat sorolja fel. A PHP-adattípusokról további információt a PHP-típusok című témakörben talál.

SQLSRV állandó PHP-adattípus
SQLSRV_PHPTYPE_INT Egész szám
SQLSRV_PHPTYPE_DATETIME Dátum és idő
SQLSRV_PHPTYPE_FLOAT Lebegés
SQLSRV_PHPTYPE_STREAM($encoding1) Stream
SQLSRV_PHPTYPE_STRING($encoding1) Lánc
  1. SQLSRV_PHPTYPE_STREAM és SQLSRV_PHPTYPE_STRING fogadja el a stream kódolását meghatározó paramétert. Az alábbi táblázat az elfogadható paramétereket tartalmazó SQLSRV-állandókat és a megfelelő kódolás leírását tartalmazza.
SQLSRV állandó Description
SQLSRV_ENC_BINARY A rendszer nyers bájtfolyamként adja vissza az adatokat a kiszolgálóról kódolás vagy fordítás nélkül.
SQLSRV_ENC_CHAR Az adatok a rendszeren beállított Windows-területi beállítás kódlapján megadott 8 bites karakterekben lesznek visszaadva. Minden többszörös bájtos karakter vagy karakter, amely nem illeszkedik ebbe a kódlapba, egyszimple bájtos kérdőjellel (?) lesz helyettesítve.

Ez az alapértelmezett kódolás.
"UTF-8" Az adatok az UTF-8 kódolásban lesznek visszaadva. Ez az állandó az SQL Serverhez készült MICROSOFT Drivers for PHP 1.1-es verziójában lett hozzáadva. További információ az UTF-8 támogatásáról : Útmutató: UTF-8-adatok küldése és lekérése Built-In UTF-8-támogatással.

Megjegyzés:

Ha SQLSRV_PHPTYPE_STREAM vagy SQLSRV_PHPTYPE_STRING használ, meg kell adni a kódolást. Ha nincs megadva paraméter, a rendszer hibát ad vissza.

További információ ezekről az állandókról : Útmutató: PHP-adattípusok megadása, Hogyan: Karakteradatok lekérése streamként az SQLSRV-illesztőprogram használatával.

SQLTYPE-állandók

Az alábbi táblázat az SQL Server-adattípusok leírásához használt állandókat sorolja fel. Egyes állandók függvényszerűek, és olyan paramétereket is tartalmazhatnak, amelyek megfelelnek a pontosságnak, a skálázásnak és/vagy a hossznak. A kötési paramétereknél a függvényszerű állandókat kell használni. A típus-összehasonlításokhoz a standard (nem függvényszerű) állandókra van szükség. Az SQL Server adattípusairól további információt az Adattípusok (Transact-SQL) című témakörben talál. A pontosságról, a skálázásról és a hosszról további információt a Pontosság, a Méretezés és a Hossz (Transact-SQL) című témakörben talál.

SQLSRV-állandó SQL Server-adattípus
SQLSRV_SQLTYPE_BIGINT bigint
SQLSRV_SQLTYPE_BINARY bináris
SQLSRV_SQLTYPE_BIT bit
SQLSRV_SQLTYPE_CHAR karakter 5
SQLSRV_SQLTYPE_CHAR($charCount) char
SQLSRV_SQLTYPE_DATE dátum4
SQLSRV_SQLTYPE_DATETIME datetime
SQLSRV_SQLTYPE_DATETIME2 datetime24
SQLSRV_SQLTYPE_DATETIMEOFFSET datetimeoffset4
SQLSRV_SQLTYPE_DECIMAL decimális5
SQLSRV_SQLTYPE_DECIMAL($precision, $scale) decimális
SQLSRV_SQLTYPE_FLOAT float
SQLSRV_SQLTYPE_IMAGE kép1
SQLSRV_SQLTYPE_INT int
SQLSRV_SQLTYPE_MONEY pénz
SQLSRV_SQLTYPE_NCHAR nchar5
SQLSRV_SQLTYPE_NCHAR($charCount) nchar
SQLSRV_SQLTYPE_NUMERIC numerikus5
SQLSRV_SQLTYPE_NUMERIC($precision, $scale) Numerikus
SQLSRV_SQLTYPE_NVARCHAR nvarchar5
SQLSRV_SQLTYPE_NVARCHAR($charCount) nvarchar
SQLSRV_SQLTYPE_NVARCHAR('max') nvarchar(MAX)
SQLSRV_SQLTYPE_NTEXT ntext2
SQLSRV_SQLTYPE_REAL valódi
SQLSRV_SQLTYPE_SMALLDATETIME smalldatetime
SQLSRV_SQLTYPE_SMALLINT smallint
SQLSRV_SQLTYPE_SMALLMONEY aprópénz
SQLSRV_SQLTYPE_TEXT szöveg3
SQLSRV_SQLTYPE_TIME idő4
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_VARCHAR('max') varchar(MAX)
SQLSRV_SQLTYPE_XML xml
  1. Ez egy öröklött típus, amely a varbinary(max) típusra van leképezve.

  2. Ez egy örökölt típus, amely az újabb nvarchar típushoz van hozzárendelve.

  3. Ez egy örökölt típus, amely az újabb varchar típusra van leképeződve.

  4. Ehhez a típushoz a Microsoft Drivers for PHP for SQL Server 1.1-es verziójában adták hozzá a támogatást.

  5. Ezeket az állandókat típus-összehasonlító műveletekben kell használni, és a függvényszerű állandókat ne cserélje le hasonló szintaxisra. Kötési paraméterek esetén a függvényszerű állandókat kell használnia.

Az alábbi táblázat felsorolja a paramétereket elfogadó SQLTYPE-állandókat és a paraméter számára engedélyezett értéktartományt.

SQLTYPE Paraméter Paraméter engedélyezett tartománya
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
pontosság 1 - 38
SQLSRV_SQLTYPE_DECIMAL

SQLSRV_SQLTYPE_NUMERIC
méret 1 – pontosság

Tranzakcióelkülönítési szint állandói

A sqlsrv_connect használt TransactionIsolation kulcs az alábbi állandók egyikét fogadja el:

  • SQLSRV_TXN_READ_UNCOMMITTED

  • SQLSRV_TXN_READ_COMMITTED

  • SQLSRV_TXN_REPEATABLE_READ

  • SQLSRV_TXN_SNAPSHOT

  • SQLSRV_TXN_SERIALIZABLE

Kurzor és görgetési állandók

Az alábbi állandók határozzák meg az eredményhalmazban használható kurzortípust:

  • SQLSRV_CURSOR_FORWARD

  • SQLSRV_CURSOR_STATIC

  • SQLSRV_CURSOR_DYNAMIC

  • SQLSRV_CURSOR_KEYSET

  • SQLSRV_CURSOR_CLIENT_BUFFERED

Az alábbi állandók határozzák meg, hogy melyik sort válassza ki az eredményhalmazban:

  • SQLSRV_SCROLL_NEXT

  • SQLSRV_SCROLL_PRIOR

  • SQLSRV_SCROLL_FIRST

  • SQLSRV_SCROLL_LAST

  • SQLSRV_SCROLL_ABSOLUTE

  • SQLSRV_SCROLL_RELATIVE

Az állandók használatáról további információt a Kurzor típusának megadása és a Sorok kijelölése című témakörben talál.

Lásd még:

SQLSRV Driver API-referencia