72 lines
2.4 KiB
PHP
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();
|
|
|
|
?>
|