1

我想获得我的数据库的当前最大大小。我找到了这些陈述并检查了它。它在 VS2012 SQL Explorer 中运行良好。但是当我使用 php 时,我没有得到任何数据。

这是我的功能:

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 回答