복붙노트

[SQL] SQL 저장 프로 시저 사용하여 PHP에서 반환 값을 가져옵니다

SQL

SQL 저장 프로 시저 사용하여 PHP에서 반환 값을 가져옵니다

내 SQL 데이터베이스와 상호 작용하는 저장 프로 시저를 사용하는 PHP 스크립트가 그래서. 저장 프로 시저 문제가 내가 저장 프로 시저에서 반환 값을 에코 내 PHP를 활용하는 방법을 몰라, 잘 작동합니다. 저장 프로 시저는 기본적으로 활성화 키를 사용하여 계정을 활성화하고 사용자 이름과 암호를 설정합니다.

그것은 기본적으로 "제공 활성화 키는 아직 이름이없는 경우 이미 사용자 이름 RETURN이 있고, 활성화 키를하지 않는 경우 RETURN 3에 해당하는 경우, 제공된 하나 RETURN 1로 설정"말했다. 그것은 SQL에서 완벽하게 작동하고 심지어 올바른 반환 값을 제공합니다. 이제 어떻게 내 PHP는 그 반향받을 수 있나요? 나는 다음을 시도했다 :

$link = sqlsrv_connect($myServer, array('Database' => $myDB, 'UID' => $myUser, 'PWD' => $myPass));
if($link === FALSE) {
    die('Could not connect: ' . sqlsrv_errors(SQLSRV_ERR_ALL));
}

$key = $_REQUEST['key'];
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];

$query = "EXEC Activate_Account";
$query .=" @key = ";
$query .= $key;
$query .=", @user = ";
$query .= $username;
$query .=", @pass = ";
$query .= $password;

$result = sqlsrv_query($link, $query);

while($row = sqlsrv_fetch_array($result))
{
    echo $row[0];
}

sqlsrv_close($link);

while($row = sqlsrv_fetch_array($result))
{
    echo $row['Return Value'];
}

그 중 어느 것도 아무것도 에코.

해결법

  1. ==============================

    1.저장 프로 시저로 값을 반환합니다 : 예를 들면 :

    저장 프로 시저로 값을 반환합니다 : 예를 들면 :

    SQL :

    CREATE DEFINER=`user`@`localhost` PROCEDURE `ProcedureName`(IN `Input_Value` INT, OUT `Out_val` INT)
        LANGUAGE SQL
        NOT DETERMINISTIC
        CONTAINS SQL
        SQL SECURITY DEFINER
        COMMENT ''
    BEGIN
    // Your SQL Code
    
        SET Out_val= Your Value;
        SELECT Out_val;
    END
    

    PHP 코드 :

    $insert = "CALL ProcedureName(:Input_Value,
                                 @Out_val)";
    $bdd = new PDO('mysql:host=localhost;dbname=db-name', 'user', 'password');
    
    $stmt = $bdd->prepare($insert);     
    $stmt->bindParam(':Input_Value', $an_input_value, PDO::PARAM_STR); 
    
    $stmt->execute();
    $tabResultat = $stmt->fetch();
    $Out_val = $tabResultat['Out_val'];
    var_dump($Out_val);
    
  2. from https://stackoverflow.com/questions/22641726/get-return-value-from-sql-stored-procedure-using-php by cc-by-sa and MIT license