1

DB の現在の最大サイズを取得したい。ステートメントを見つけてチェックアウトしました。VS2012 SQL Explorer では問題なく動作します。しかし、私がphp imを使用しているとき、データは得られません。

これは私の機能です:

function getLoad() {
$conn = connect();
$string = 'DATABASEPROPERTYEX ( 'database' , 'MaxSizeInBytes' )';
$stmt = $conn->query($string);
return $stmt->fetchAll(PDO::FETCH_NUM);
}

問題は、$stmt のフェッチでエラーが発生することです。エラーは次のとおりです。

can not fetchAll(11)
4

1 に答える 1

1

このコードは、データベースのエディションと最大サイズを GB で出力します。

<?php
function get_database_properties($server, $database, $username, $password) {
    try {
        $conn = new PDO ("sqlsrv:server=tcp:{$server}.database.windows.net,1433; Database={$database}", $username, $password);
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $conn->setAttribute(constant('PDO::SQLSRV_ATTR_DIRECT_QUERY'), true);
        $query = "SELECT CONVERT(NVARCHAR(128), DATABASEPROPERTYEX ('{$database}', 'Edition')) as 'Edition', " .
                 "CONVERT(DECIMAL,DATABASEPROPERTYEX ('{$database}', 'MaxSizeInBytes'))/1024/1024/1024 AS 'MaxSizeInGB'";
        $stmt = $conn->query($query);
        $row = $stmt->fetch();
        $conn = null;
        return $row;
    }
    catch (Exception $e) {
        die(print_r($e));
    }
}

$db_properties = get_database_properties("yourserver", "yourdatabase", "youruser", "yourpassword");
print("Edition={$db_properties['Edition']} MaxSizeInGB={$db_properties['MaxSizeInGB']}\n");
?>
于 2013-07-24T15:06:39.093 に答える