(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_fetch_object — Liefert einen Datensatz als Objekt
mssql_fetch_object() ist mssql_fetch_array() ähnlich, aber es besteht ein Unterschied: statt eines Arrays wird ein Objekt zurückgegeben. Indirekt bedeutet das, dass nur über die Feldnamen auf die Daten zugegriffen werden kann, nicht aber über ihre Offsets (Zahlen sind als Namen von Eigenschaften nicht erlaubt).
Was die Geschwindigkeit betrifft, ist diese Funktion mit mssql_fetch_array() identisch und fast genauso schnell wie mssql_fetch_row() (der Unterschied ist unbedeutend).
Der Bezeichner des Ergebnisses, das ausgewertet wird. Dieses Ergebnis stammt von einem Aufruf von mssql_query().
Gibt ein Objekt mit den Eigenschaften des gelieferten Datensatzes zurück oder FALSE, wenn es keinen weiteren Datensatz gibt.
Beispiel #1 mssql_fetch_object()-Beispiel
<?php
// Eine Select-Anfrage an MSSQL senden
$anfrage = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');
// Überprüfen, ob es Datensätze gab
if (!mssql_num_rows($anfrage)) {
echo 'Keine Datensätze gefunden';
} else {
// Eine Liste der Benutzer in folgendem Format ausgeben:
// * name (username)
echo '<ul>';
while ($datensatz = mssql_fetch_object($anfrage)) {
echo '<li>' . $datensatz->name . ' (' . $datensatz->username . ')</li>';
}
echo '</ul>';
}
// Den Ergebnisspeicher freigeben
mssql_free_result($anfrage);
?>
Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.
Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-NULL.
It is important to point out that the result of both
SELECT ' '
and
SELECT ''
is the string ' '.
That is, the php mssql functions will return a phantom space for any empty strings.
See http://bugs.php.net/bug.php?id=26996 and http://bugs.php.net/bug.php?id=25777
PHP does not classify this as a "bug" because the MS DBLib cannot tell the difference betwene the two cases. Earlier versions of php trim'd strings automatically.
It may be a good idea to ltrim and rtrim your results in some cases.
<?php
/*
A simple example using mssql_fetch_object
*/
$conexao = mssql_connect("myServer","myUser","myPass");
mssql_select_db("myDB",$conexao);
$query = mssql_query("SELECT EMPRESA FROM IDENTIFICACAO ORDER BY EMPRESA;");
while ($retorno = mssql_fetch_object($query))
echo "Empresa:" . $retorno->EMPRESA;
?>