SQLSRV Equilavent of mysqli_stmt_bind_result - PullRequest
0 голосов
/ 01 июня 2018

Я работаю над формой регистрации / входа в систему, и я впервые работаю с SQLSRV (из-за базы данных Azure), и я не могу найти эквивалент mysqli_stmt_bind_result для SQLSRV, может кто-нибудь помочь мне с этим?Заранее спасибо, Томас

1 Ответ

0 голосов
/ 01 июня 2018

Я думаю, что ваша функция sqlsrv_fetch_array().

Вы можете проверить этот простой пример:

<?php
$server = 'server\instance,port';
$cinfo = array(
    "Database"=>'master',
    "UID"=>'user',
    "PWD"=>'password'
);

$conn = sqlsrv_connect($server, $cinfo);
if( $conn === false )
{
    echo "Error (sqlsrv_connect): ".print_r(sqlsrv_errors(), true);
    exit;
}

$sql = 
    "SELECT 'SUSER_SNAME' AS [NAME], CONVERT(varchar(128), SUSER_SNAME()) AS [VALUE]".
    "UNION ALL ".
    "SELECT 'SUSER_NAME' AS [NAME], CONVERT(varchar(128), SUSER_NAME()) AS [VALUE]".
    "UNION ALL ".
    "SELECT 'USER_NAME' AS [NAME], CONVERT(varchar(128), USER_NAME()) AS [VALUE]".
    "UNION ALL ".
    "SELECT 'USER_ID' AS [NAME], CONVERT(varchar(128), USER_ID()) AS [VALUE]";
$stmt = sqlsrv_query($conn, $sql);
if( $stmt === false ) {
    echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
    exit;
}

while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    echo $row['NAME'].": ".$row['VALUE']."</br>";
}

sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>

Пример использования параметров:

...
$sql = "SELECT * FROM Gebruikers WHERE username = (?) AND password = (?)";
// $params definition:
// - A literal value.
// - A PHP variable.
// - An array with the following structure:
// array($value [, $direction [, $phpType [, $sqlType]]]) where $direction is one of the following: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. The default valueis SQLSRV_PARAM_IN.
$params = array(
    array($vusername, SQLSRV_PARAM_IN),
    array($vpassword, SQLSRV_PARAM_IN)
);
$stmt = sqlsrv_query($conn, $sql, $params);
if( $stmt === false ) {
    echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
    exit;
}
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    $vusername = $row['username'];
    $vpassword = $row['password'];
}
'''

Вы можетечитать дальше здесь .

...