HI हिन्दी
版本: v2.3.0

शुरू करें

Medoo से शुरुआत करना आसान है।

आवश्यकताएं

PHP PDO एक्सटेंशन सूची

निम्न सूची दिखाती है कि आपके डेटाबेस प्रकार और प्लेटफ़ॉर्म के आधार पर कौन सा PDO एक्सटेंशन इंस्टॉल करना है।
नाम ड्राइवर
MySQL, MariaDB php_pdo_mysql
MSSQL php_pdo_sqlsrv / php_pdo_dblib
Oracle php_pdo_oci
SQLite php_pdo_sqlite
PostgreSQL php_pdo_pgsql
साइबेस php_pdo_dblib

PHP PDO ड्राइवर इंस्टालेशन

Medoo को PDO समर्थन के साथ PHP की आवश्यकता है। यदि PDO अभी तक स्थापित नहीं है, तो इन चरणों का पालन करें।
// php.ini को संपादित करें और जिस database extension को सक्षम करना चाहते हैं उसके आगे लगा सेमीकोलन हटा दें।

// .dll Windows पर और .so Linux/UNIX पर उपयोग होता है।

// पहले
;extension=php_pdo_mysql.dll
;extension=php_pdo_mysql.so

// बाद में
extension=php_pdo_mysql.dll
extension=php_pdo_mysql.so

// फ़ाइल सहेजें और फिर PHP या Apache/Nginx को पुनः आरंभ करें।

// यदि PDO सही तरीके से इंस्टॉल है, तो वह phpinfo() में दिखाई देगा।
या टर्मिनल से इंस्टॉल करें. PDO एक्सटेंशन स्वचालित रूप से सक्षम और कॉन्फ़िगर किया जाएगा।
$ sudo apt-get install php7.4-mysql

Composer इंस्टालेशन

यदि आप Composer का उपयोग करते हैं, तो निम्न आदेश के साथ Medoo स्थापित करें।
$ composer require catfan/medoo
Composer निर्भरता स्वचालित रूप से स्थापित करता है। composer update केवल तभी चलाएँ जब आपको निर्भरताएँ मैन्युअल रूप से ताज़ा करने की आवश्यकता हो।
$ composer update

मैन्युअल इंस्टालेशन

एक आसान विकल्प यह है कि medoo.php डाउनलोड करें, इसे अपने प्रोजेक्ट में रखें और require के साथ शामिल करें।
require 'Medoo.php';

विन्यास

Medoo प्रारंभ करने और डेटाबेस कनेक्शन प्रारंभ करने के लिए कॉन्फ़िगरेशन सरणी पास करें।
// Composer का ऑटोलोडर लोड करें।
require 'vendor/autoload.php';

// Medoo namespace इम्पोर्ट करें।
use Medoo\Medoo;

$database = new Medoo([
	// आवश्यक.
	'type' => 'mysql',
	'host' => 'localhost',
	'database' => 'name',
	'username' => 'your_username',
	'password' => 'your_password',

	// वैकल्पिक.
	'charset' => 'utf8mb4',
	'collation' => 'utf8mb4_general_ci',
	'port' => 3306,

	// वैकल्पिक: टेबल प्रीफ़िक्स। सभी टेबल नाम PREFIX_table बन जाएंगे।
	'prefix' => 'PREFIX_',

	// वैकल्पिक: लॉगिंग सक्षम करें। बेहतर प्रदर्शन के लिए यह डिफ़ॉल्ट रूप से बंद रहती है।
	'logging' => true,

	// वैकल्पिक.
	// त्रुटि मोड.
	// यह तय करता है कि PDO त्रुटियों की रिपोर्ट कैसे करेगा।
	// PDO::ERRMODE_SILENT (डिफ़ॉल्ट) | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION
	// संदर्भ: https://www.php.net/manual/en/pdo.error-handling.php.
	'error' => PDO::ERRMODE_SILENT,

	// वैकल्पिक.
	// कनेक्शन के लिए ड्राइवर विकल्प।
	// संदर्भ: https://www.php.net/manual/en/pdo.setattribute.php.
	'option' => [
		PDO::ATTR_CASE => PDO::CASE_NATURAL
	],

	// वैकल्पिक: डेटाबेस कनेक्शन बनने के बाद चलाए जाने वाले कमांड।
	'command' => [
		'SET SQL_MODE=ANSI_QUOTES'
	]
]);

कस्टम डीएसएन कनेक्शन

आप उन डेटाबेस को कनेक्ट करने के लिए एक कस्टम DSN भी प्रदान कर सकते हैं जो Medoo बॉक्स से बाहर समर्थन नहीं करता है, या अतिरिक्त DSN पैरामीटर पास करने के लिए भी प्रदान कर सकते हैं।
डीएसएन कनेक्शन स्ट्रिंग प्रारूप
{ड्राइवर}:{कुंजी}={मूल्य};{कुंजी}={मूल्य}
$database = new Medoo([
	'dsn' => [
		// DSN में उपयोग किया जाने वाला PDO ड्राइवर नाम।
		'driver' => 'mydb',
		// DSN पैरामीटर key-value pairs के रूप में।
		'server' => '12.23.34.45',
		'port' => '8886'
	],
	// वैकल्पिक: Medoo को बताता है कि डेटाबेस-विशिष्ट व्यवहार कौन सा उपयोग करना है।
	'type' => 'mysql',

	'username' => 'your_username',
	'password' => 'your_password'
]);

// अंतिम रूप से उत्पन्न DSN स्ट्रिंग:
mydb:server=12.23.34.45;port=8886

PDO ऑब्जेक्ट आरंभीकरण

आप मौजूदा प्रारंभिक PDO ऑब्जेक्ट से Medoo भी बना सकते हैं।
$pdo = new PDO('mysql:dbname=test;host=127.0.0.1', 'user', 'password');

$database = new Medoo([
	// पहले से प्रारंभिक और कनेक्टेड PDO instance का पुनः उपयोग करें।
	'pdo' => $pdo,

	// वैकल्पिक: Medoo को बताता है कि डेटाबेस-विशिष्ट व्यवहार कौन सा उपयोग करना है।
	'type' => 'mysql'
]);

MySQL के लिए

यह विकल्प केवल MySQL के लिए है।
$database = new Medoo([
	// वैकल्पिक: MySQL socket। इसे server और port के साथ एक साथ उपयोग न करें।
	'socket' => '/tmp/mysql.sock',
]);

MariaDB के लिए

MariaDB को MySQL के समान ही प्रबंधित किया जाता है। डेटाबेस प्रकार स्वचालित रूप से mysql पर मैप किया जाता है।
$database = new Medoo([
	'type' => 'mariadb',
	'host' => 'localhost',
	'database' => 'name',
	'username' => 'your_username',
	'password' => 'your_password',
]);

MSSQL के लिए

आधुनिक MSSQL कनेक्शन आमतौर पर विंडोज़ और लिनक्स/यूनिक्स दोनों पर pdo_sqlsrv एक्सटेंशन का उपयोग करते हैं। Medoo डिफ़ॉल्ट रूप से pdo_sqlsrv ड्राइवर का उपयोग करता है। उन विरासत परिवेशों के लिए जिनके लिए pdo_dblib की आवश्यकता होती है, आरंभीकरण के दौरान ड्राइवर को स्पष्ट रूप से सेट करें। विवरण के लिए https://github.com/Microsoft/msphpsql देखें।
$database = new Medoo([
	'type' => 'mssql',
	'host' => 'localhost',
	'database' => 'name',
	'username' => 'your_username',
	'password' => 'your_password',

	// वैकल्पिक: एप्लिकेशन का नाम।
	'appname' => 'test',

	// वैकल्पिक.
	// MSSQL के लिए Medoo को dblib ड्राइवर उपयोग करने के लिए बाध्य करें।
	// डिफ़ॉल्ट: sqlsrv.
	'driver' => 'dblib'
]);
Medoo sqlsrv ड्राइवर का उपयोग करते समय MSSQL कनेक्शन विकल्पों का भी समर्थन करता है। विवरण यहां देखें https://docs.microsoft.com/en-us/sql/connect/php/connection-options?view=sql-server-2017.
$database = new Medoo([
	'type' => 'mssql',
	'host' => 'localhost',
	'database' => 'name',
	'username' => 'your_username',
	'password' => 'your_password',

	// वैकल्पिक: MSSQL कनेक्शन विकल्प।
	'application_intent' => 'ReadOnly',
	'attach_db_file_name' => './database.sql',
	'authentication' => 'SqlPassword',
	'column_encryption' => 'Enabled',
	'connection_pooling' => 1,
	'encrypt' => 1,
	'failover_partner' => 'MultiSubnetFailover',
	'key_store_authentication' => 'KeyVaultPassword',
	'key_store_principal_id' => 'AzureName',
	'key_store_secret' => 'AzurePass',
	'login_timeout' => '20',
	'multiple_active_result_sets' => 1,
	'multi_subnet_failover' => 'Yes',
	'scrollable' => 'buffered',
	'trace_file' => './path',
	'trace_on' => 1,
	'transaction_isolation' => PDO::SQLSRV_TXN_SNAPSHOT,
	'transparent_network_ip_resolution' => 'Enabled',
	'trust_server_certificate' => 1,
	'wsid' => 'Computer1'
]);

SQLite के लिए

फ़ाइल डेटाबेस
$database = new Medoo([
	'type' => 'sqlite',
	'database' => 'my/database/path/database.db'
]);
मेमोरी डेटाबेस
$database = new Medoo([
	'type' => 'sqlite',
	'database' => ':memory:'
]);
अस्थायी डेटाबेस
कनेक्शन बंद होने पर अस्थायी डेटाबेस हटा दिया जाता है।
$database = new Medoo([
	'type' => 'sqlite',
	'database' => ''
]);

// या database विकल्प को पूरी तरह छोड़ दें।
$database = new Medoo([
	'type' => 'sqlite'
]);

डीएसएन स्ट्रिंग को डीबग करें

आप info() पर कॉल करके अंतिम DSN स्ट्रिंग का निरीक्षण कर सकते हैं।
$database = new Medoo([
	'type' => 'mysql',
	'host' => '127.0.0.1',
	'database' => 'test',
	'username' => 'your_username',
	'password' => 'your_password',
]);

echo $database->info()['dsn'];

// mysql:dbname=test;host=127.0.0.1

परीक्षण मोड

यह मोड परीक्षणों के लिए उपयोगी है. आप विभिन्न डेटाबेस प्रकारों में $database->queryString के माध्यम से उत्पन्न SQL को सत्यापित कर सकते हैं। क्वेरीज़ उत्पन्न होती हैं लेकिन निष्पादित नहीं होतीं।
$database = new Medoo([
	'testMode' => true
]);

// डेटाबेस का प्रकार सेट करें।
$database->type = 'mysql';

$database->select("account", ["user_name"], ["user_id[>]" => 10]);

echo $database->queryString;