34008-vm/db/config.php
Flatlogic Bot 7be5d661b2 www
2025-09-19 07:29:32 +00:00

72 lines
2.4 KiB
PHP

<?php
// db/config.php
// --- Database Credentials ---
// These are typically stored in environment variables for security
define('DB_HOST', '127.0.0.1');
define('DB_NAME', 'app_db');
define('DB_USER', 'app_user');
define('DB_PASS', 'password'); // Replace with a strong password in a real app
// --- PDO Helper Function ---
function db(): ?PDO {
static $pdo = null;
if ($pdo !== null) {
return $pdo;
}
$dsn = 'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=utf8mb4';
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, DB_USER, DB_PASS, $options);
return $pdo;
} catch (PDOException $e) {
error_log('DB Connection Error: ' . $e->getMessage());
return null;
}
}
// --- Initial Table Setup ---
function setup_database() {
$pdo = db();
if ($pdo) {
try {
$pdo->exec("CREATE TABLE IF NOT EXISTS leads (
id INT AUTO_INCREMENT PRIMARY KEY,
lead_name VARCHAR(255) NOT NULL,
status VARCHAR(50) NOT NULL,
category VARCHAR(50) NOT NULL,
contact_email VARCHAR(255) NOT NULL,
owner VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);");
// Add some dummy data if the table is empty
$stmt = $pdo->query("SELECT COUNT(*) FROM leads");
if ($stmt->fetchColumn() == 0) {
$pdo->exec("
INSERT INTO leads (lead_name, status, category, contact_email, owner) VALUES
('Global Corp vs. Local Biz', 'New', 'Corporate', 'ceo@globalcorp.com', 'John Doe'),
('Smith Divorce Case', 'Contacted', 'Family', 'jane.smith@email.com', 'Jane Smith'),
('State vs. Anderson', 'Qualified', 'Criminal', 'anderson@email.com', 'John Doe'),
('Tech Innovations Inc. Patent', 'New', 'Corporate', 'contact@techinnovations.com', 'Jane Smith'),
('Real Estate Dispute', 'Lost', 'Corporate', 'buyer@realestate.com', 'John Doe');
");
}
} catch (PDOException $e) {
error_log('DB Setup Error: ' . $e->getMessage());
}
}
}
// Run setup
setup_database();
?>