php 쿼리결과에 대한 결과 행이 있는지 여부, sqlsrv_has_rows / sqlsrv_num_rows
mysql 을 오랜만에 사용할 기회가 있어서 처리중에...
데이터 갯수를 체크해야 했는데 mssql 에서 하던대로 count 해서 데이터 갯수를 체크하려고 했으나
sqlsrv_num_rows 함수를 이용하니 결과 값이 빈값이 찍히는 상황.
확인해보니 sqlsrv_num_rows 결과 값을 리턴 받기 위해서는 커서 타입을 지정해야함.
단순 쿼리 결과 값이 있는지 여부를 체크하는 함수가 있더라는..
sqlsrv_has_rows
- 쿼리결과에 대한 결과 행이 있는지 여부 . return : bool
php manual : http://php.net/manual/en/function.sqlsrv-has-rows.php
<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" )
$conn = sqlsrv_connect( $server, $connectionInfo );
$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");
if ($stmt) {
$rows = sqlsrv_has_rows( $stmt );
if ($rows === true)
echo "There are rows. <br />";
else
echo "There are no rows. <br />";
}
?>
<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $server, $connectionInfo );
$sql = "SELECT * FROM Table_1";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn, $sql , $params, $options );
$row_count = sqlsrv_num_rows( $stmt );
if ($row_count === false)
echo "Error in retrieveing row count.";
else
echo $row_count;
?>