2026, 새로운 도약을 시작합니다.

php mssql db 한개 값 가져오기 채택완료

안녕하세요. 제가 현재 MSSQL과 연결해서 한개의 값만 가져와 변수에 저장하는 코드를 작성중입니다.

우선, DB 연결하는 부분에도 성공을 했고, 이전 페이지에서 ajax로 넘겨주는 부분도 성공했기에 SELECT 쿼리에는 문제가 없는것을 확인했습니다.

코드는 다음과 같습니다.

Copy

위와 같이 코드를 작성했고, 주석에도 적어놨듯이 productCount 값을 받아오는게 목표입니다.

output을 출력해보면 쿼리문은 잘 출력하는데 productCount값을 저장한 변수인 before_count는 아무런 출력도 못합니다.

이 부분에 대해서 아시는 분 계시다면 설명 부탁드리겠습니다.

감사합니다!

답변 4개

채택된 답변
+20 포인트
Copy


// $result = sqlsrv_query($conn, $before_query);

$result = sqlsrv_query($connect, $before_query);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

정말 바보같이 여기서 틀렸었네요ㅠ 도와주셔서 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

    $before_query = "SELECT * FROM tblProduct WHERE ProductName = '$productName'";
 
    $result = sqlsrv_query($conn, $before_query);
    $before_count = '';

==

count라는 것이 

WHERE ProductName = '$productName' 

이 조건에 맞는 record 갯수를 원하시는 거라면

$before_query = "SELECT count(*) ProductCount FROM tblProduct WHERE ProductName = '$productName'";

$result = sqlsrv_query($conn, $before_query);

$row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC);

$before_count = $row["ProductCount"];

이렇게 하셔야 합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아! Count 함수를 쓰는 방법도 있었군요! 알려주신 방향으로 해보겠습니다.
도와주셔서 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

mssql 드라이버함수를 그대로 쓰지 마시고, PDO 를 통해 접속객체를 만들어서 쓰세요.

그러면 mysql 이나 mssql이나 동일한 방식으로 메소드 호출이 가능합니다.

$row = $pdoconn->query("select top 1 * from table_name where condition.....")->fetch(PDO::FETCH_ASSOC);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

넵 감사합니다! PHP 관련해서 PDO는 처음 들어봤는데 더 공부해서 말씀해주신대로 바꿔보겠습니다. 도와주셔서 감사합니다!

댓글을 작성하려면 로그인이 필요합니다.

if (sqlsrv_query($connect, $before_query)) {

-> 삭제

}

echo $output;

->

echo $output;

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

죄송하지만 어떤걸 작성하고자 하신지 알 수 있을까요?
제가 출력하고 싶은건 $before_count입니다만,, echo $output만 두번 작성하셔서 무슨 말씀이신지 모르겠습니다.
또한 if문은 이후에 사용할 코드라 지우면 안되는데 왜 삭제하라 하신건지 알 수 있을까요?

제 눈에는 아래 코드처럼 보이는데 이렇게 작성하신게 맞을까요?

if (sqlsrv_query($connect, $before_query)) {
-> 삭제
}
echo $output;
->
echo $output;
if (sqlsrv_query($connect, $before_query)) {
$output .= '<label class="text-success">'.$before_query.'</label>'; // 출력 잘됨
$output .= '<label class="text-success">'.$before_count.'</label>'; // 출력 안됨

// $before_count를 이용한 쿼리 작성 예정
}

->


$output .= '<label class="text-success">'.$before_query.'</label>'; // 출력 잘됨
$output .= '<label class="text-success">'.$before_count.'</label>'; // 출력 안됨
음 말씀하신대로 if문만 지워주고 실행해봐도 $before_query는 출력 하지만 $before_count는 출력 못하네요..
저는 while문이 문제라 생각했는데 이부분은 고민해보겠습니다.
도와주셔서 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고