[SQL] SQL 저장 프로 시저 사용하여 PHP에서 반환 값을 가져옵니다
SQLSQL 저장 프로 시저 사용하여 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.저장 프로 시저로 값을 반환합니다 : 예를 들면 :
저장 프로 시저로 값을 반환합니다 : 예를 들면 :
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);
from https://stackoverflow.com/questions/22641726/get-return-value-from-sql-stored-procedure-using-php by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] PostgreSQL을 업데이트 가입과 (0) | 2020.07.17 |
---|---|
[SQL] 열이 null MySQL을 수 없습니다 (0) | 2020.07.17 |
[SQL] 오라클 : ON DUPLICATE KEY UPDATE [중복] (0) | 2020.07.17 |
[SQL] 잡을 치명적인 오류 : 클래스 mysqli_stmt의 객체는 문자열로 변환 할 수 없습니다 (0) | 2020.07.17 |
[SQL] SQL 서버 : 대신 DELETE CASCADE ON의 자기 참조 FK, 트리거 (0) | 2020.07.17 |