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