sqlsrv_query
Dient zur Vorbereitung und Ausführung von Anweisungen.
Hinweis
Diese Funktion ist zur Ausführung von einmaligen Abfragen vorgesehen. Weitere Informationen finden Sie unter Vorgehensweise: Ausführen einer einzelnen Abfrage.
Syntax
sqlsrv_query( resource $conn, string $tsql [, array $params [, array $options]])
Parameter
$conn: Die der vorbereiteten Anweisung zugeordnete Verbindungsressource.
$tsql: Der Transact-SQL-Ausdruck, der der vorbereiteten Anweisung entspricht.
$params [OPTIONAL]: Ein array mit Werten, die den Parametern einer parametrisierten Abfrage entsprechen. Jedes Arrayelement kann von einem der folgenden Typen sein:
Ein Literalwert
Eine PHP-Variable
Ein array mit der folgenden Struktur:
array($value [, $direction [, $phpType [, $sqlType]]])
Die nachfolgende Tabelle enthält Beschreibungen der einzelnen Arrayelemente:
Element Beschreibung $value
Ein Literalwert, eine PHP-Variable oder eine PHP-Variable, die als Verweis übergeben wird
$direction [OPTIONAL]
Eine der folgenden SQLSRV_PARAM_*-Konstanten wird zur Angabe der Parameterrichtung verwendet: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. Der Standardwert lautet SQLSRV_PARAM_IN.
Weitere Informationen zu PHP-Konstanten finden Sie unter SQLSRV-Konstanten.
$phpType [OPTIONAL]
Eine SQLSRV_PHPTYPE_*-Konstante, die den PHP-Datentyp des zurückgegebenen Werts angibt.
$sqlType [OPTIONAL]
Eine SQLSRV_SQLTYPE_*-Konstante, die den SQL Server-Datentyp des Eingabewerts angibt.
$options [OPTIONAL]: Ein assoziatives Array, mit dem die Abfrageeigenschaften festgelegt werden. Die folgenden Schlüssel werden unterstützt:
Schlüssel | Unterstützte Werte | Beschreibung |
---|---|---|
QueryTimeout |
Ein positiver ganzzahliger Wert |
Legt das Abfragetimeout in Sekunden fest. Standardmäßig wartet der Treiber unendlich lange auf Ergebnisse. |
SendStreamParamsAtExec |
true oder false Der Standardwert lautet true. |
Konfiguriert den Treiber so, dass sämtliche Streamdaten zur Ausführungszeit (true) bzw. die Streamdaten in Segmenten (false) gesendet werden. Standardmäßig ist der Wert auf true festgelegt. Weitere Informationen finden Sie unter sqlsrv_send_stream_data. |
Scrollfähigkeit |
SQLSRV_CURSOR_FORWARD SQLSRV_CURSOR_STATIC SQLSRV_CURSOR_DYNAMIC SQLSRV_CURSOR_KEYSET |
Dieser Schlüssel wurde in Version 1.1 des SQL Server-Treiber für PHP hinzugefügt. Weitere Informationen zu diesen Werten finden Sie unter Angeben eines Cursortyps und Auswählen von Zeilen. |
Rückgabewert
Eine Anweisungsressource. Wenn die Anweisung nicht erstellt und/oder ausgeführt werden kann, wird false zurückgegeben.
Beispiel
Im folgenden Beispiel wird ein Feld in der Sales.SalesOrderDetail-Tabelle der AdventureWorks-Beispieldatenbank aktualisiert. Im Beispiel wird davon ausgegangen, dass SQL Server und die AdventureWorks-Datenbank auf dem lokalen Computer installiert sind. Alle Ausgaben werden in die Konsole geschrieben, wenn das Beispiel über die Befehlszeile ausgeführt wird.
<?php
/* Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "(local)";
$connectionInfo = array("Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Could not connect.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Set up the parameterized query. */
$tsql = "UPDATE Sales.SalesOrderDetail
SET OrderQty = ( ?)
WHERE SalesOrderDetailID = ( ?)";
/* Assign literal parameter values. */
$params = array( 5, 10);
/* Execute the query. */
if( sqlsrv_query( $conn, $tsql, $params))
{
echo "Statement executed.\n";
}
else
{
echo "Error in statement execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/* Free connection resources. */
sqlsrv_close( $conn);
?>
Siehe auch
Aufgaben
Vorgehensweise: Durchführen parametrisierter Abfragen
Vorgehensweise: Senden von Daten als Stream
Konzepte
Informationen zu den Codebeispielen in der Dokumentation
Weitere Ressourcen
API-Referenz (SQL Server-Treiber für PHP)
Entwurfsaspekte
Verwenden von direktionalen Parametern