PHP MSSQL 연동 에러 질문입니다.
본문
외부 MSSQL 연동 후 프로시저 실행 시키는데 코드를 실행시키면
자꾸
SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]하위 쿼리에서 값을 둘 이상 반환했습니다. 하위 쿼리 앞에 =, !=, <, <=, >, >= 등이 오거나 하위 쿼리가 하나의 식으로 사용된 경우에는 여러 값을 반환할 수 없습니다.
이 문구가 출력됩니다.
어느 부분을 수정해야 될까요?
try {
// PDO 객체를 생성하여 MSSQL에 연결합니다.
$conn = new PDO("sqlsrv:Server=$serverName;Database=$dbname", $user, $password);
// 에러 모드를 예외로 설정합니다.
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 저장 프로시저를 실행할 SQL 문을 작성합니다.
// $sql = "EXEC UP_H1CTI_OPDIN_C$002 @CLINIC_YMD, @CLINIC_TIME, @DEPT_CD, @DOCT_EMPL_NO, @MEMO, @COME_TYPE_GB, @PTNT_NM, @PTNT_PRSN_NO, @PHONE_NO, @RSRV_USER_GB";
$sql = "{call UP_H1CTI_OPDIN_C$002 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}";
// PDOStatement 객체를 생성합니다.
$stmt = $conn->prepare($sql);
// 저장 프로시저에 전달할 매개 변수 값을 설정합니다.
$param1 = $ReserveDate;
$param2 = $ReserveTime;
$param3 = $DEPT_CD;
$param4 = $DOCT_CD;
$param5 = $memo;
$param6 = $come_type;
$param7 = $ReserveName;
$param8 = $Jumin;
$param9 = $tel;
$param10 = "P";
$msg = null;
$stmt->bindParam(1, $param1, PDO::PARAM_STR);
$stmt->bindParam(2, $param2, PDO::PARAM_STR);
$stmt->bindParam(3, $param3, PDO::PARAM_STR);
$stmt->bindParam(4, $param4, PDO::PARAM_INT);
$stmt->bindParam(5, $param5, PDO::PARAM_STR);
$stmt->bindParam(6, $param6, PDO::PARAM_STR);
$stmt->bindParam(7, $param7, PDO::PARAM_STR);
$stmt->bindParam(8, $param8, PDO::PARAM_STR);
$stmt->bindParam(9, $param9, PDO::PARAM_STR);
$stmt->bindParam(10, $param10, PDO::PARAM_STR);
// 저장 프로시저를 실행합니다.
$stmt->execute();
// 결과를 가져옵니다.
$result = $stmt->fetchAll();
// 결과를 처리합니다.
foreach ($result as $row) {
// 각 행의 필드 값을 출력합니다.
echo "필드1: " . $row['MSG'] . "<br>";
}
} catch (PDOException $e) {
// 연결 중 오류가 발생했을 때 처리할 예외 코드를 작성합니다.
echo "Connection failed: " . print_r($e);
}
답변을 작성하시기 전에 로그인 해주세요.