Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да свържете PHP към MySQL

Искате ли да научите как да свържете PHP към MySQL и да изпълнявате различни видове операции с база данни? В тази статия ще направим точно това — ще обсъдим свързаността с MySQL база данни в PHP.

PHP предоставя различни начини за свързване на PHP към сървър на база данни на MySQL. До PHP 5.5 един от най-популярните начини беше с разширението MySQL — то осигуряваше „процедурен“ начин за свързване към MySQL сървъра. Това разширение обаче е остаряло от PHP 5.5, така че няма да го обсъждаме.

В момента вашите два избора са PDO и MySQLi.

Разширението PDO (PHP Data Objects) поддържа различни типове подлежащи сървъри на бази данни заедно с MySQL сървъра. И по този начин е преносим, ​​в случай че решите да размените основния сървър на база данни в който и да е момент в бъдеще.

От друга страна, разширението MySQLi е специфично за MySQL сървъра и осигурява по-добра скорост и производителност. Разширението MySQLi също може да бъде малко по-лесно за разбиране в началото, тъй като ви позволява да пишете директно SQL заявки. Ако сте работили със SQL бази данни преди, това ще ви е много познато. Разширението PDO обаче създава мощно съпоставяне от SQL базата данни към вашия PHP код и ви позволява да извършвате много операции с база данни, без да е необходимо да знаете подробностите за SQL или базата данни. В дългосрочен план и за по-големи проекти това може да спести много усилия за кодиране и отстраняване на грешки.

В тази публикация ще използвам разширението MySQLi. Но можете да научите повече за разширението на PDO тук на Envato Tuts+.

  • PHP Бързо Създайте PHP CRUD интерфейс с PDO Advanced CRUD Generator ToolSajal Soni

В тази статия ще разгледаме следните теми:

  • създаване на MySQL връзка
  • вмъкване, актуализиране и изтриване на записи
  • извличане на записи

Най-добрите PHP скриптове за база данни в CodeCanyon

В тази публикация ще ви покажа как да направите гола връзка с MySQL база данни от PHP. Това е важно умение, което трябва да имате, но ако искате да спестите време за следващия си проект, може да искате да надстроите до професионален скрипт за база данни. Това ще спести време и ще улесни работата ви.

Разгледайте най-добрите и полезни PHP скриптове за база данни, създавани някога в CodeCanyon. С евтино еднократно плащане можете да закупите тези висококачествени теми на WordPress и да подобрите изживяването на уебсайта си за вас и вашите посетители.

Ето някои от най-добрите PHP скриптове за база данни, налични в CodeCanyon за 2020 г.

  • PHPCComparing PHP Абстракционни слоеве на база данни и CRUD Plugins Sajal Soni

Създайте MySQL връзка

В този раздел ще ви покажа как можете да се свържете с MySQL сървъра от вашия PHP скрипт и да създадете обект за връзка. По-късно този обект на връзка ще се използва за изпълнение на заявки, извличане на изход и манипулиране на записите в базата данни. Както обсъдихме по-рано, ще използваме разширението PHP MySQLi за тази статия.

Разширението MySQLi предоставя два различни начина за извършване на операции с база данни. Можете да го използвате или по обектно-ориентиран начин, или по процедурен начин, но тъй като този урок е насочен към начинаещи, аз ще се придържам към процедурния начин. Ако се интересувате да видите някои обектно-ориентирани фрагменти, можете да ми изпратите ping в секцията за коментари по-долу и с удоволствие ще ги предоставя.

За да започнете, продължете и създайте db_connect.php файл под корена на вашия документ със следното съдържание.

<?php
$mysqli_link = mysqli_connect("{HOST_NAME}", "{DATABASE_USERNAME}", "{DATABASE_PASSWORD}", "{DATABASE_NAME}");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Имайте предвид, че използвах заместители в mysqli_connect функция — трябва да ги замените с действителни стойности.

Нека преминем през всеки контейнер, за да видим какво означава той.

  • {HOST_NAME} :Това представлява името на хоста или IP адреса на вашия MySQL сървър. Ако сте инсталирали MySQL сървъра на същата система заедно с PHP, трябва да използвате localhost или 127.0.0.1 . От друга страна, ако използвате MySQL сървър, който се хоства външно, можете да използвате съответното име на хост или IP адрес.
  • {DATABASE_USERNAME} :Това представлява потребителското име на вашия MySQL потребител. По принцип това е потребителското име, което използвате, за да се свържете с вашия MySQL сървър.
  • {DATABASE_PASSWORD} :Това представлява паролата на вашия MySQL потребител. Отново, това е паролата, която използвате, за да се свържете с вашия MySQL сървър заедно с потребителското име на MySQL.
  • {DATABASE_NAME} :Това е името на MySQL базата данни, към която искате да се свържете. След като връзката бъде създадена, ще потърсите тази база данни за по-нататъшни операции.

Продължете и заменете тези заместители с действителни стойности. В моя случай инсталирах MySQL сървъра локално и имам потребител на MySQL с tutsplus-demo-user като потребителско име на MySQL и tutsplus-demo-password като парола за MySQL. И с това горният пример изглежда така:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Ако изпълните този пример, той трябва да създаде връзка за връзка с база данни и да я присвои на $mysqli_link променлива, която ще използваме по-късно за извършване на различни видове операции с база данни.

От друга страна, ако има някакъв проблем при настройката на връзката,  mysqli_connect_errno функцията ще върне код за грешка и mysqli_connect_error функцията ще покаже действителната грешка. В горния пример сме го използвали за целите на отстраняване на грешки.

Сега имаме успешна връзка със сървъра MySQL и ще видим как да го използваме за изпълнение на различни типове заявки от следващия раздел нататък.

Как да вмъкнете записи

В предишния раздел обсъдихме как да използвате mysqli_connect функция за настройка на връзка с база данни с MySQL сървъра. В този раздел ще продължим и ще обсъдим как да използваме обекта за връзка за изпълнение на INSERT запитвания.

Ако искате да следвате примерите, обсъдени в тази статия, ще трябва да създадете следната MySQL таблица във вашата база данни. Това е таблицата, която ще използваме във всички примери оттук нататък.

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `last_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Продължете и създайте горната MySQL таблица с помощта на софтуера phpMyAdmin или инструмента от командния ред.

След това нека създадем db_insert.php файл със следното съдържание. Моля, не забравяйте да замените параметрите на връзката със свои собствени.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$insert_query = "INSERT INTO students(`first_name`,`last_name`,`email`)
VALUES ('". mysqli_real_escape_string($mysqli_link, 'John') ."','". mysqli_real_escape_string($mysqli_link, 'Wood') ."','". mysqli_real_escape_string($mysqli_link, '[email protected]') ."')";
 
// run the insert query
If (mysqli_query($mysqli_link, $insert_query)) {
    echo 'Record inserted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Първо, ние настроихме връзка с база данни, като използваме mysqli_connect функция, както обсъдихме по-рано. След това подготвихме заявката за вмъкване, която ще изпълним по-късно. Важно е да отбележим, че сме използвали mysqli_real_escape_string функция за избягване на стойности на низове, които ще използваме в заявката за вмъкване. По-конкретно, трябва да използвате тази функция, когато работите със стойности, изпратени чрез $_POST променливи, за да избегнете SQL инжектиране.

И накрая, използвахме mysqli_query функция, която приема два аргумента. Първият аргумент е активната връзка за връзка, където ще бъде изпълнена заявката. И вторият аргумент е MySQL заявката, която искаме да изпълним. mysqli_query функцията връща TRUE ако заявката е изпълнена успешно.

И накрая, използвахме mysqli_close функция за затваряне на активната връзка с базата данни. Добра практика е да затворите връзката с базата данни, след като приключите с операциите с базата данни.

Продължете и стартирайте скрипта и това трябва да вмъкне запис в students маса!

Как да актуализирам записи

Актуализирането на записите в база данни от PHP скрипта е много подобно на операцията вмъкване; единствената разлика е, че заявката ще бъде заявка за актуализиране вместо заявка за вмъкване.

Нека преразгледаме горния пример и да актуализираме first_name поле, както е показано в следващия пример.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$update_query = "UPDATE students SET `first_name` = '". mysqli_real_escape_string($mysqli_link,'Johnny') ."' WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $update_query)) {
    echo 'Record updated successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Продължете и стартирайте скрипта и това трябва да актуализира записа в students маса.

Как да изберете записи

В предишните раздели обсъдихме как можете да вмъквате и актуализирате записи в база данни от PHP скрипта. В този раздел ще разгледаме как можете да извличате записи от база данни, като използвате различните типове функции на MySQLi.

Първо, трябва да използвате mysqli_query функция за изпълнение на заявката за избор. При успешно изпълнение на заявката за избор, mysqli_query функцията връща резултатния обект mysqli, който бихме могли да използваме, за да преглеждаме записите, върнати от заявката за избор. Когато става въпрос за извличане и повторение на записите от резултатния обект MySQLi, има различни налични функции.

  • mysqli_fetch_all :Позволява ви да извлечете всички редове с резултати наведнъж. Можете също да посочите дали искате резултати като асоциативен масив, числов масив или и двете.
  • mysqli_fetch_array :Позволява ви да извличате един ред наведнъж. И по този начин ще трябва да използвате цикъла while, за да преглеждате всички записи. Отново можете да посочите дали искате ред с резултати като асоциативен масив, числов масив или и двете.
  • mysqli_fetch_assoc :Извлича ред с резултат един по един като асоцииран масив.
  • mysqli_fetch_object :Извлича ред с резултат един по един като обект.

Нека да разгледаме следния пример, за да разберем как работи:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$select_query = "SELECT * FROM students LIMIT 10";
$result = mysqli_query($mysqli_link, $select_query);

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "First Name:" . $row['first_name'] . "<br/>";
    echo "Last Name:" . $row['last_name'] . "<br/>";
    echo "Email:" . $row['email'] . "<br/>";
    echo "<br/>";
}

// close the db connection
mysqli_close($mysqli_link);
?>

Както можете да видите, използвахме mysqli_fetch_array функция с MYSQLI_ASSOC опция като втори аргумент. И по този начин той връща резултатния ред като асоцииран масив. Ако използвате MYSQLI_NUM опция, ще получите достъп до нея като $row[0] , $row[1] и $row[2] в горния пример.

От друга страна, ако използвате mysqli_fetch_object функция в горния пример, можете да получите достъп до стойностите, както е показано в следния фрагмент. За краткост ще включа само фрагмента на цикъла while.

…
…
while ($row = mysqli_fetch_object($result)) {
    echo "First Name:" . $row->first_name . "<br/>";
    echo "Last Name:" . $row->last_name . "<br/>";
    echo "Email:" . $row->email . "<br/>";
    echo "<br/>";
}
...
...

Така че по този начин можете да извличате и показвате записи от базата данни MySQLi.

Как да изтриете записи

В този раздел ще видим как да стартирате заявки за изтриване от PHP скрипта. Изтриването на записи от база данни е доста проста операция, тъй като просто трябва да подготвите заявката за изтриване и да я стартирате с mysqli_query функция.

Нека преминем през следния пример, за да видим как работи.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$delete_query = "DELETE FROM students WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $delete_query)) {
    echo 'Record deleted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Както можете да видите, всичко е същото, както видяхме вече с примерите за вмъкване и актуализиране, с изключение на това, че заявката е заявка за изтриване в този случай.

Така че можете да изпълнявате различни видове операции с база данни от PHP скрипта.

И с това стигнахме до края на този урок. Това, което обсъдихме досега днес, би трябвало да ви помогне да укрепите концепциите за свързаност с база данни, по-специално как да свържете PHP към MySQL и да изпълнявате различни видове операции.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да направя рекурсивната SELECT заявка в MySQL?

  2. Инсталация на MySQL

  3. БРОЙ MySQL РАЗЛИЧЕН

  4. Използване на разширени функции на Oracle JDeveloper за MySQL бази данни

  5. Mysql:Подреждане по харесване?