• php 쿼리결과에 대한 결과 행이 있는지 여부, sqlsrv_has_rows / sqlsrv_num_rows

    2018. 4. 26.

    by. Yo.

    728x90

    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 />";
        }
    ?>




    sqlsrv_num_rows

    - 쿼리 결과에 대한 행의 갯수 .  
    커서 타입을 SQLSRV_CURSOR_KEYSET 또는  SQLSRV_CURSOR_STATIC 으로  
    지정해주어야 결과 값을 가져올 수 있음.


    <?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;
    ?>

    728x90

    댓글