Autor Zpráva
leorond
Profil
Dobré odpoledne, chtěl bych se zeptat na funkci mssql_get_last_message(). Zajímá mne jak jí použít pro rozšíření sqlsrv.

Dříve jsem data vypisoval takto

$sqll    =    mssql_query("    declare    @items    varbinary(1920); 
                    set        @items    =    (select items from warehouse where accountid='$username');
                    print    @items;");
$sqll    =    mssql_get_last_message();

Vím že alternativou pro sqlsrv je sqlsrv_errors() ale jak na query?

Něco dělám špatně a když použiji výše uvedený dotaz tak se mi stránka vůbec nenačte.
leorond
Profil
Tak jsem to nakonec zkusil takto

$stmt    =    sqlsrv_query($conn, "SELECT CONVERT(VARBINARY(1920), Items, 0) FROM warehouse WHERE AccountID = 'ADMIN'");

if( $stmt === false ) {
    if( ($errors = sqlsrv_errors() ) != null) {
        foreach( $errors as $error ) {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
            echo "code: ".$error[ 'code']."<br />";
            echo "message: ".$error[ 'message']."<br />";
        }
    }
}

Ale nic mi to nevypíše, v MSSQL dostanu výsledek na [#1] leorond i na tento ale první nemohu použít jelikož nejsou povoleny názvy sloupců pro print.

Zkrátka nedostanu žádnou chybu nic


Pokud vypíšu výsledek pomocí fetch_array() a použiji funkci bin2hex() tak dostanu správný výsledek ale to nemusím ani použít CONVERT v dotazu.
Zechy
Profil
leorond:
Pokud vypíšu výsledek pomocí fetch_array() a použiji funkci bin2hex() tak dostanu správný výsledek ale to nemusím ani použít CONVERT v dotazu.
Nula totiž udává, že převádíš varbinary původního tvaru uloženého v items do stejného tvaru. Tudíž správně to pak je až po bin2hex. Když použiješ v Convert 1 nebo 2, mělo by jej to převést do správného tvaru.
leorond
Profil
Zechy:
Děkuji

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: