پلتفرم PHP
(PHP Platform)اتصال به دیتابیسها
فهرست عناوین:
MySQL/MariaDB
در صورتی که تمایلی به خواندن آموزش متنی ندارید میتوانید ویدیوی آموزشی زیر را مشاهده کنید.
روشها و کتابخانههای مختلفی برای اتصال به MySQL یا MariaDB در PHP وجود دارد. برای در ادامه، ما از mysqli استفاده میکنیم. در ابتدا، باید متغیرهای محیطی زیر را به برنامه خود اضافه کنید، در نظر داشته باشید که مقادیر متغیرهای زیر فرعی هستند و شما باید آنها را با مقادیر اصلی دیتابیس خود، جایگزین کنید:
DB_HOST=annapurna.liara.cloud
DB_PORT=34663
DB_DATABASE=dreamy_zhukovsky
DB_USERNAME=root
DB_PASSWORD=Umtdo7rWEoEMyWth4nS1sf4t
اکنون، میتوانید با استفاده از قطعه کد زیر به دیتابیس MySQL/MariaDB خود متصل شوید:
<?php
$servername = getenv('DB_HOST');
$port = getenv('DB_PORT');
$username = getenv('DB_USERNAME');
$password = getenv('DB_PASSWORD');
$database = getenv('DB_DATABASE');
$conn = new mysqli($servername, $username, $password, $database, $port);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
echo "Connected";}
$conn->close();
?>
PostgreSQL
در ابتدا کافیست تا متغیرمحیطی زیر را به برنامه خود اضافه کنید؛ در نظر داشته باشید که مقدار متغیر زیر، فرضی است:
PG_URI=postgresql://root:2aCRtMfc2oMou67U2GftmLmd@annapurna.liara.cloud:32655/postgres
در نهایت، میتوانید با استفاده از قطعه کد زیر، به دیتابیس PostgreSQL خود متصل شوید:
<?php
$uri = getenv("PG_URI");
try {
$uriParts = parse_url($uri);
$host = $uriParts['host'];
$port = $uriParts['port'];
$user = $uriParts['user'];
$pass = $uriParts['pass'];
$dbname = ltrim($uriParts['path'], '/');
$pdo = new PDO("pgsql:host=$host;port=$port;dbname=$dbname;user=$user;password=$pass");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected to PostgreSQL database successfully!";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();}
?>
MongoDB
برای استفاده از این دیتابیس، در ابتدا باید در Local با استفاده از دستور زیر، پکیج mongodb را بر روی پروژه خود نصب کنید:
composer require mongodb/mongodb:^1.15 --ignore-platform-reqs
یا اگر که در حال حاضر امکان استفاده از composer را ندارید، میتوانید در مسیر اصلی پروژه، یک فایل به نام composer.json ایجاد کنید و سپس قطعه کد زیر را، درون آن، قرار دهید:
{
"require": {
"mongodb/mongodb": "1.15"
}
}
در ادامه، میتوانید متغیر محیطی زیر را در برنامه خود، تعریف کنید؛ در نظر داشته باشید که مقدار متغیر زیر، فرضی است:
MONGODB_URI=mongodb://root:JtFcUbOxnQunBSnEzu1PNf5Z@annapurna.liara.cloud:30725/my-app?authSource=admin
و در نهایت، با استفاده از قطعه کد زیر، میتوانید به دیتابیس MongoDB متصل شوید:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Exception;
use MongoDBClient;
$uri = getenv('MONGODB_URI');
$options = [
'connectTimeoutMS' => 5000,
'socketTimeoutMS' => 60000,
'maxIdleTimeMS' => 300000,
'maxPoolSize' => 50,
'minPoolSize' => 5,
];
try {
$client = new MongoDBClient($uri, [], $options);
$client->selectDatabase('admin')->command(['ping' => 1]);
echo "Pinged your deployment. You successfully connected to MongoDB!
";
} catch (Exception $e) {
printf($e->getMessage());
}
?>
Redis
برای اتصال به Redis، در ابتدا کافیست تا متغیرهای محیطی زیر را به برنامه خود، اضافه کنید. در نظر داشته باشید که مقادیر متغیرهای زیر، فرضی هستند و باید آنها را با اطلاعات واقعی دیتابیس خود، جایگزین کنید:
REDIS_HOST=annapurna.liara.cloud
REDIS_PORT=34728
REDIS_PASS=aLsc5QKG7z4ubKeLSLBwx9ob
در نهایت، میتوانید با استفاده از قطعه کد زیر، به Redis متصل شوید:
<?php
$redis = new Redis();
$redis->connect(getenv('REDIS_HOST'), getenv('REDIS_PORT'));
$redis->auth(getenv('REDIS_PASS'));
if ($redis->ping()) {
echo "PONG";
}
?>
SQLite
برای اتصال اصولی به دیتابیس SQLite در برنامه PHP خود، کافیست تا مراحل زیر را دنبال کنید:
- مرحله اول) در مسیر اصلی پروژه، یک دایرکتوری به نام dbconfig بسازید.
- مرحله دوم) در مسیر اصلی پروژه، یک فایل به نام composer.json ایجاد کنید و محتوای زیر را درونش قرار دهید:
{
"autoload": {
"psr-4": {
"myDB\\": "dbconfig/"
}
}
}
<?php
namespace myDB;
class Config {
const PATH_TO_SQLITE_FILE = 'db/phpsqlite.db';
}
<?php
namespace myDB;
class SQLiteConnection {
private $pdo;
public function connect() {
if ($this->pdo == null) {
$this->pdo = new \PDO("sqlite:" . Config::PATH_TO_SQLITE_FILE);
}
return $this->pdo;
}
}
<?php
require 'vendor/autoload.php';
use myDB\SQLiteConnection;
$pdo = (new SQLiteConnection())->connect();
if ($pdo != null)
echo 'Connected to the SQLite database successfully!';
else
echo 'Could not connect to the SQLite database!';
{
"php": {
"version": "8.2"
},
"disks": [
{
"name": "database",
"mountTo": "/var/www/html/db"
}
]
}
متوجه شدم، برو گام بعدی!