diff --git a/examples/lamp/php/index.php b/examples/lamp/php/index.php index 6cf1a50..471f6a2 100644 --- a/examples/lamp/php/index.php +++ b/examples/lamp/php/index.php @@ -1,3 +1,85 @@ PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, +]; + +try { + $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 + ) + "); +} catch (\PDOException $e) { + die("❌ DB connection failed: " . $e->getMessage()); +} + +function getDbStats($pdo, $db) { + $stmt = $pdo->query(" + 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 = '$db' + "); + $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'])) { + $iterations = 1024; + $data = str_repeat(random_bytes(1024), 1024); // 1MB + $stmt = $pdo->prepare("INSERT INTO filler (data) VALUES (:data)"); + + for ($i = 0; $i < $iterations; $i++) { + $stmt->execute([':data' => $data]); + } + + list($dbSize, $rowCount, $avgRowMb) = getDbStats($pdo, $db); + + $message = "
✅ 1GB inserted into MariaDB successfully.
"; +} ?> + + + + +