2013-07-24 44 views
1

我想获得我的数据库的当前最大大小。我发现这些陈述被检查出来。它在VS2012 SQL Explorer中正常工作。但是,当即时通讯使用php im没有数据。Windows Azure MaxSizeInByte声明

这是我的函数:

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

的问题是,我在获取了$语句得到一个错误。错误是:

can not fetchAll(11) 

回答

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"); 
?> 
+0

真棒!你很棒! –