In modern application development, running applications across multiple platforms is essential. PHP's popularity makes cross-platform database connections a key skill for developers. This article explains how to use PHP to connect to various databases on Windows, Linux, and macOS.
PDO (PHP Data Objects) is the recommended method in PHP for cross-platform database connections. It provides a unified API to interact with different database systems.
<?php
// Connect to MySQL database
$dsn = 'mysql:host=localhost;dbname=mydb;charset=utf8';
$user = 'username';
$password = 'password';
try {
// Create a PDO instance
$pdo = new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Execute query
$statement = $pdo->prepare("SELECT * FROM users");
$statement->execute();
// Fetch results
$users = $statement->fetchAll(PDO::FETCH_ASSOC);
// Loop through results
foreach ($users as $user) {
echo $user['name'] . "\n";
}
} catch (PDOException $e) {
// Handle errors
echo "Error: " . $e->getMessage();
}
?>In addition to PDO, you can use database-specific native drivers:
<?php
// Connect to MySQL database
$mysqli = new mysqli("localhost", "username", "password", "mydb");
// Check connection
if ($mysqli->connect_error) {
echo "Connect failed: " . $mysqli->connect_error;
exit;
}
// Execute query
$result = $mysqli->query("SELECT * FROM users");
// Fetch results
while ($row = $result->fetch_assoc()) {
echo $row['name'] . "\n";
}
// Close connection
$mysqli->close();
?>Suppose your PHP web application needs to connect to different databases on different platforms:
By defining database details in a configuration file, your PHP code can dynamically load the appropriate connection logic based on the platform:
<?php
// Detect platform
$platform = strtoupper(substr(PHP_OS, 0, 3));
// Load platform-specific connection logic
switch ($platform) {
case 'WIN':
require_once 'connect_mysql.php';
break;
case 'LIN':
require_once 'connect_pgsql.php';
break;
case 'MAC':
require_once 'connect_sqlite.php';
break;
default:
echo 'Unsupported platform';
exit;
}
// Perform database operations...
?>This approach allows your application to connect to databases on any operating system, achieving true cross-platform compatibility.