Відмінності між версіями «Робота з базами даних в PHP»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Створена сторінка: * category:Навчальні проекти)
 
Рядок 1: Рядок 1:
 +
Для прикладу роботи PHP з базами даних будемо використовувати LAMP-сервер (Linux Apache MySQL PHP).<br>
 +
Зочатку з'єднаємось з сервером бази даних за допомогою функції mysql_connect();
 +
Для цього треба вказати:
 +
1. Адресу сервера бази даних - $hostname = "localhost" (127.0.0.1) для локального сервера;
 +
2. Ім'я користувача, зареєстрованого на сервері БД;
 +
3. Пароль цього користувача.
 +
Функція
 +
 +
    mysql_connect  ([string $server = ini_get("mysql.default_host")  [,  string $username = ini_get("mysql.default_user")  [,  string $password =
 +
    ini_get("mysql.default_password")  [,  bool $new_link = false  [,  int $client_flags = 0  ]]]]] )
 +
 +
повертає ідентифікатор з'єднання або FALSE.
 +
Наприклад:
 +
 +
    <?php
 +
    $username = "your_name";
 +
    $password = "your_password";
 +
    $hostname = "localhost";
 +
    //connection to the database
 +
    $dbhandle = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL");
 +
    echo "Connected to MySQL<br>";
 +
    ?>
 +
 +
Потім треба вибрати базу даних, з якою будемо працювати. Для цього використаємо функцію
 +
   
 +
    bool mysql_select_db  (  string $database_name  [,  resource $link_identifier  ] )
 +
 +
Наприклад:
 +
 +
    <?php
 +
    //select a database to work with
 +
    $selected = mysql_select_db("examples",$dbhandle) or die("Could not select examples");
 +
    ?>
 +
 +
,де examples - ім'я бази даних.
 +
 +
Наступним кроком буде безпосередньо робота з даними засобами SQL-запитів. Для цього в PHP використовують функцію
 +
   
 +
    resource mysql_query  (  string $query  [,  resource $link_identifier  ] )
 +
 +
, обов'язковим параметром якої є радок, що містить SQL-запит.
 +
 +
Наприклад:
 +
 +
    <?php
 +
    //execute the SQL query and return records
 +
    $result = mysql_query("SELECT id, model, year FROM cars");
 +
    //fetch tha data from the database
 +
    while ($row = mysql_fetch_array($result))
 +
        {
 +
        echo "ID:".$row{'id'}." Name:".$row{'model'}."
 +
        ".$row{'year'}."<br>";
 +
        }
 +
    ?>
 +
 +
В прикладі використана функція mysql_fetch_array();. Вона повертає рядок з $result, що є частиною "таблиці" БД, і потім переміщає внутрішній покажчик вперед на 1 рядок.
 +
 +
Після роботи з базою даних, треба закрити з'єднання за допомогою функції
 +
 +
    bool mysql_close  ([  resource $link_identifier  ] )
 +
 +
Якщо ідентифікатор не вказаний, то закривається останнє відкрите з'єднання.
 +
 +
Наприклад:
 +
 +
    <?php
 +
    //close the connection
 +
    mysql_close($dbhandle); або просто mysql_close();
 +
    ?>
 +
 +
Ми розглянули випадок, коли база даних вже існує, і ми лише спробували маніпулювати даними з її таблиці. Насправді ж засобами PHP можна виконувати багато різноманітних задач при роботі з базами даних. Для цього PHP пропонує великий вибір функцій, з якими можна ознайомитись [http://www.php.net/manual/en/ref.mysql.php тут]
 +
TechInfo:
 +
1) Зпочатку, для перевірки роботи ПХП з MySQL виконаємо скрипт:
 +
    <?php 
 +
      $dblocation = "127.0.0.1";  // localhost
 +
      $dbname = "test"; 
 +
      $dbuser = "root"; 
 +
      $dbpasswd = ""; 
 +
 +
      $dbhandle = mysql_connect($dblocation, $dbuser, $dbpasswd); 
 +
      if (!$dbhandle) 
 +
      { 
 +
        echo "<p>Cервер MySQL недоступний!</p>"; 
 +
        exit(); 
 +
      } 
 +
      if (!mysql_select_db($dbname,$dbhandle) ) 
 +
      { 
 +
        echo "<p>База даних недоступна!</p>"; 
 +
        exit(); 
 +
      } 
 +
      $ver = mysql_query("SELECT VERSION()"); 
 +
      if(!$ver) 
 +
      { 
 +
        echo "<p>Помилка в запиті</p>"; 
 +
        exit(); 
 +
      } 
 +
      echo mysql_result($ver, 0); 
 +
    ?>
 +
Якщо тест пройшов вдало, то на екран буде виведено номер версії сервера MySQL. В іншому випадку буде виведена відповідна помилка.
 +
  
 
[[category:Інтернет-програмування|*]]
 
[[category:Інтернет-програмування|*]]
  
 
[[category:Навчальні проекти]]
 
[[category:Навчальні проекти]]

Версія за 00:28, 22 квітня 2010

Для прикладу роботи PHP з базами даних будемо використовувати LAMP-сервер (Linux Apache MySQL PHP).
Зочатку з'єднаємось з сервером бази даних за допомогою функції mysql_connect(); Для цього треба вказати: 1. Адресу сервера бази даних - $hostname = "localhost" (127.0.0.1) для локального сервера; 2. Ім'я користувача, зареєстрованого на сервері БД; 3. Пароль цього користувача. Функція

   mysql_connect  ([string $server = ini_get("mysql.default_host")  [,  string $username = ini_get("mysql.default_user")  [,  string $password =
   ini_get("mysql.default_password")  [,  bool $new_link = false  [,  int $client_flags = 0  ]]]]] )

повертає ідентифікатор з'єднання або FALSE. Наприклад:

   <?php
   $username = "your_name";
   $password = "your_password";
   $hostname = "localhost"; 
   //connection to the database
   $dbhandle = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL");
   echo "Connected to MySQL
";  ?>

Потім треба вибрати базу даних, з якою будемо працювати. Для цього використаємо функцію

   bool mysql_select_db  (  string $database_name  [,  resource $link_identifier  ] )

Наприклад:

   <?php
   //select a database to work with
   $selected = mysql_select_db("examples",$dbhandle) or die("Could not select examples");
   ?>

,де examples - ім'я бази даних.

Наступним кроком буде безпосередньо робота з даними засобами SQL-запитів. Для цього в PHP використовують функцію

   resource mysql_query  (  string $query  [,  resource $link_identifier  ] )

, обов'язковим параметром якої є радок, що містить SQL-запит.

Наприклад:

   <?php
   //execute the SQL query and return records
   $result = mysql_query("SELECT id, model, year FROM cars");
   //fetch tha data from the database
   while ($row = mysql_fetch_array($result)) 
       {
       echo "ID:".$row{'id'}." Name:".$row{'model'}."
       ".$row{'year'}."
"; }  ?>

В прикладі використана функція mysql_fetch_array();. Вона повертає рядок з $result, що є частиною "таблиці" БД, і потім переміщає внутрішній покажчик вперед на 1 рядок.

Після роботи з базою даних, треба закрити з'єднання за допомогою функції

   bool mysql_close  ([  resource $link_identifier  ] )

Якщо ідентифікатор не вказаний, то закривається останнє відкрите з'єднання.

Наприклад:

   <?php
   //close the connection
   mysql_close($dbhandle); або просто mysql_close();
   ?>

Ми розглянули випадок, коли база даних вже існує, і ми лише спробували маніпулювати даними з її таблиці. Насправді ж засобами PHP можна виконувати багато різноманітних задач при роботі з базами даних. Для цього PHP пропонує великий вибір функцій, з якими можна ознайомитись тут TechInfo: 1) Зпочатку, для перевірки роботи ПХП з MySQL виконаємо скрипт:

   <?php  
     $dblocation = "127.0.0.1";  // localhost
     $dbname = "test";  
     $dbuser = "root";  
     $dbpasswd = "";  
     $dbhandle = mysql_connect($dblocation, $dbuser, $dbpasswd);  
     if (!$dbhandle)  
     {  
echo "

Cервер MySQL недоступний!

";
       exit();  
     }  
     if (!mysql_select_db($dbname,$dbhandle) )  
     {  
echo "

База даних недоступна!

";
       exit();  
     }  
     $ver = mysql_query("SELECT VERSION()");  
     if(!$ver)  
     {  
echo "

Помилка в запиті

";
       exit();  
     }  
     echo mysql_result($ver, 0);  
   ?> 

Якщо тест пройшов вдало, то на екран буде виведено номер версії сервера MySQL. В іншому випадку буде виведена відповідна помилка.