Ողջույն սիրելի ընթերցողներ, մենք արդեն սովորեցինք, թե ի՞նչ է տվյալների բազան և ծանոթացանք SQL հարցումների հետ, իսկ այս հոդվածում կծանոթանանք, թե ինչպես php-ի միջոցով կապ հաստատենք տվյալների բազայի հետ: Դրա համար օգտագործվում է mysqli ընդլայնումը (ավելացել է PHP-ի 5.0.0 տարբերակից): Այն ծրագրավորողին ապահովում է կրկնակի ինտերֆեյս՝ ընթացակարգային և օբյեկտ-կողմնորոշված: Առաջինի դեպքում գործողություն կատարելու համար կանչում ենք ինչ-որ ֆունկցիա, իսկ օբյեկտ-կողմնորոշված ինտեֆեյս օգտագործելիս ստեղծում ենք օբյեկտի նախատիպ՝ դաս(class) և հետո օգտագործում դրա մեթոդները: Երկրորդ մոտեցումն ավելի նախընտրելի է, քանի որ նպաստում է ավելի ժամանակակից ու կազմակերպված կոդ գրելուն, բայց դրա հետ կծանոթանանք ավելի ուշ, երբ կսովորենք, թե ի՞նչ է օբյեկտ-կողմնորոշված ծրագրավորումը:
Դե ինչ ներկայացնեմ mysqli-ի մի քանի ֆունկցիաներ՝ դրանց ընթացակարգային և օբյեկտ-կողմնորոշված ձևերով:
Ընթացակարգային | Օբյեկտ-կողմնորոշված | Նկարագրություն |
---|---|---|
mysqli_connect() | mysqli::__construct() | Նոր կապի հաստատում MySQL սերվերի հետ |
mysqli_connect_error() | $mysqli::connect_error | Վերջին միացման սխալների նկարագրություն |
mysqli_connect_errno() | mysqli::connect_errno | Վերջին միացման սխալների կոդերը |
mysqli_get_server_info() | mysqli::server_info | Վերադարձնում է MySQL սերվերի տարբերակը |
mysqli_insert_id() | mysqli::insert_id | Վերադարձնում է վերջին հարցման ժամանակ ավտոմատ գեներացված id-ն |
mysqli_close() | mysqli::close() | Փակում է կապը տվյալների բազայի հետ |
mysqli_kill() | mysqli::kill() | Դիմում է սերվեր` MySQl հոսքը դադարեցնելու համար |
mysqli_query() | mysqli::query() | Հարցում տվյալների բազային |
mysqli_prepare() | mysqli::prepare() | Նախապատրաստում է SQL հարցում գործարկելու համար |
mysqli_stmt_execute() | mysqli_stmt::execute() | Գործարկում է նախապատրաստած հարցումը |
mysqli_stmt_bind_param() | mysqli_stmt::bind_param() | Փոխանցում է փոփոխականները նախապատրաստական հրամաններին որպես պարամետրեր |
mysqli_stmt_bind_result() | mysqli_stmt::bind_result() | Փոխանցում է փոփոխականները նախապատրաստական հրամաններին՝ արդյունքի պահպանման համար |
mysqli_stmt_close() | mysqli_stmt::close() | Փակում է նախապատրաստական հրահանգները |
mysqli_stmt_fetch() | mysqli_stmt::fetch() | Վերցնում է նախապատրաստական հրահանգի արդյունքները՝ փոփոխականներով |
mysqli_select_db() | mysqli::select_db() | Ընտրում է լռելյայն տվյալների բազան հարցումներ իրականացնելու համար |
mysqli_store_result() | mysqli::store_result() | Փոխանցում է վերջին հարցման ժամանակ ստացած արդյունքը |
Այստեղ ներկայացված է ամենաշատ օգտագործվող ֆունկցիաները, իսկ մնացածի հետ կարող եք ծանոթանալ PHP-ի պաշտոնական կայքում:
Իսկ հիմա դիտարկենք մի քանի օրինակ նշված ֆունկցիաներով:
SQL լեզվի հիմնական հրամաններ հոդվածի մեջ ստեղծած աղյուսակից ստանանք տվյալներ՝
1.
//Սերվերի հետ միացում $connection = mysqli_connect("localhost", "root", "", "blog"); //Միացման ստուգում if (!$connection) { printf("Միացումը ձախողվեց: %s\n", mysqli_connect_error()); exit(); } $result = mysqli_query($connection, "SELECT `first_name`,`last_name` FROM staff_list"); if (!$result) { printf("Առաջացել է սխալ: %s\n", mysqli_error($connection)); }else { $result_arr = mysqli_fetch_array($result); var_dump($result_arr ); } //Միացման ավարտ mysqli_close($connection);
2.
// Սերվերի հետ միացում $link = mysqli_connect("localhost", "root", "", "blog"); // Միացման ստուգում if (mysqli_connect_errno()) { printf("Միացումը չհաջողվեց: %s\n", mysqli_connect_error()); exit(); } $id = 1; // Նախապատրաստական հարցման պատրաստում if ($stmt = mysqli_prepare($link, "SELECT `first_name`,`e_mail`,`phone_number` FROM `staff_list` WHERE `id` = ?")) { //Փոփոխականների փոխանցում նախապատրաստական հրամանին mysqli_stmt_bind_param($stmt, "i", $id); // Հարցման գործարկում mysqli_stmt_execute($stmt); // Փոփոխականների կապում հարցման արդյունքի հետ mysqli_stmt_bind_result($stmt, $first_name, $e_mail, $phone); // Արժեքների ստացում mysqli_stmt_fetch($stmt); printf("Անուն - %s,<br />Էլ.փոստ - %s,<br /> Հեռախոսահամար - %s", $first_name, $e_mail, $phone); //Հարցման ավարտ mysqli_stmt_close($stmt); } // Միացման ավարտ mysqli_close($link);
Հարցերի դեպքում թողեք մեկնաբանություն և մենք սիրով կպատասխանենք Ձեր հարցերին:
Շնորհակալություն մեր բլոգից օգտվելու համար։ Հարգանքներով՝ IT-Blog.am թիմ։