diff --git a/examples/lamp/php/index.php b/examples/lamp/php/index.php index b361578..471f6a2 100644 --- a/examples/lamp/php/index.php +++ b/examples/lamp/php/index.php @@ -3,14 +3,12 @@ ini_set('display_errors', 1); error_reporting(E_ALL); -// Load dynamic secrets from environment $host = getenv('MYSQL_HOST') ?: ''; $user = getenv('MYSQL_USER') ?: 'root'; $pass = getenv('MYSQL_PASSWORD') ?: ''; $db = 'testfill'; $charset = 'utf8mb4'; -// Connect to MariaDB $dsn = "mysql:host=$host;charset=$charset"; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, @@ -18,10 +16,10 @@ $options = [ ]; try { - $pdo = new PDO($dsn, $user, $pass, $options); - $pdo->exec("CREATE DATABASE IF NOT EXISTS `$db`"); - $pdo->exec("USE `$db`"); - $pdo->exec(" + $pdo = new PDO($dsn, $user, $pass, $options); + $pdo->exec("CREATE DATABASE IF NOT EXISTS `$db`"); + $pdo->exec("USE `$db`"); + $pdo->exec(" CREATE TABLE IF NOT EXISTS filler ( id INT AUTO_INCREMENT PRIMARY KEY, data LONGBLOB @@ -31,22 +29,26 @@ try { die("❌ DB connection failed: " . $e->getMessage()); } -// Get database size from information_schema -try { +function getDbStats($pdo, $db) { $stmt = $pdo->query(" - SELECT ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS total_size_gb + SELECT + ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS total_size_gb, + SUM(table_rows) AS total_rows FROM information_schema.tables - WHERE table_schema = 'testfill' + WHERE table_schema = '$db' "); - $dbSize = $stmt->fetch()['total_size_gb'] ?? '0'; -} catch (Exception $e) { - $dbSize = 'N/A'; + $result = $stmt->fetch(); + $sizeGb = $result['total_size_gb'] ?? '0'; + $rows = $result['total_rows'] ?? '0'; + $avgMb = ($rows > 0) ? round(($sizeGb * 1024) / $rows, 2) : 0; + return [$sizeGb, $rows, $avgMb]; } +list($dbSize, $rowCount, $avgRowMb) = getDbStats($pdo, $db); + $message = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['fill'])) { - // Insert ~1GB of binary data $iterations = 1024; $data = str_repeat(random_bytes(1024), 1024); // 1MB $stmt = $pdo->prepare("INSERT INTO filler (data) VALUES (:data)"); @@ -55,13 +57,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['fill'])) { $stmt->execute([':data' => $data]); } - // Recalculate DB size - $stmt = $pdo->query(" - SELECT ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS total_size_gb - FROM information_schema.tables - WHERE table_schema = 'testfill' - "); - $dbSize = $stmt->fetch()['total_size_gb'] ?? '0'; + list($dbSize, $rowCount, $avgRowMb) = getDbStats($pdo, $db); $message = "
✅ 1GB inserted into MariaDB successfully.
"; } @@ -76,7 +72,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['fill'])) {