php mssql db 한개 값 가져오기
본문
안녕하세요. 제가 현재 MSSQL과 연결해서 한개의 값만 가져와 변수에 저장하는 코드를 작성중입니다.
우선, DB 연결하는 부분에도 성공을 했고, 이전 페이지에서 ajax로 넘겨주는 부분도 성공했기에 SELECT 쿼리에는 문제가 없는것을 확인했습니다.
코드는 다음과 같습니다.
<?php
if(!empty($_POST)){
$msg = '';
$output = '';
$DB_IP = "";
$DB_ID = "";
$DB_PWD = "";
$DB_NAME = "";
$DB_ConnectInfo = array("UID"=>$DB_ID, "PWD"=>$DB_PWD, "Database"=>$DB_NAME, "CharacterSet" => "UTF-8");
date_default_timezone_set('Asia/Seoul');
$connect = sqlsrv_connect($DB_IP, $DB_ConnectInfo);
// ajax로 넘긴 값
$id = $_POST["product_id"];
$productName = $_POST["productName"];
$before_query = "SELECT * FROM tblProduct WHERE ProductName = '$productName'";
$result = sqlsrv_query($conn, $before_query);
$before_count = '';
// ProductCount값 구해서 before_count 변수에 넣어주기
while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
$before_count = $row["ProductCount"];
}
if (sqlsrv_query($connect, $before_query)) {
$output .= '<label class="text-success">'.$before_query.'</label>'; // 출력 잘됨
$output .= '<label class="text-success">'.$before_count.'</label>'; // 출력 안됨
// $before_count를 이용한 쿼리 작성 예정
}
echo $output;
}
위와 같이 코드를 작성했고, 주석에도 적어놨듯이 productCount 값을 받아오는게 목표입니다.
output을 출력해보면 쿼리문은 잘 출력하는데 productCount값을 저장한 변수인 before_count는 아무런 출력도 못합니다.
이 부분에 대해서 아시는 분 계시다면 설명 부탁드리겠습니다.
감사합니다!
!-->답변 4
// $result = sqlsrv_query($conn, $before_query);
$result = sqlsrv_query($connect, $before_query);
!-->
if (sqlsrv_query($connect, $before_query)) {
-> 삭제
}
echo $output;
->
echo $output;
mssql 드라이버함수를 그대로 쓰지 마시고, PDO 를 통해 접속객체를 만들어서 쓰세요.
그러면 mysql 이나 mssql이나 동일한 방식으로 메소드 호출이 가능합니다.
$row = $pdoconn->query("select top 1 * from table_name where condition.....")->fetch(PDO::FETCH_ASSOC);
$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"];
이렇게 하셔야 합니다.