Powrót

Połączenie z serwerem MYSQL, odczyt i zapis danych do bazy danych

1. Nawiązanie połączenia

Do nawiązania połączenia z serwerem MYSQL używamy metod:

mysqli_connect() - rozpoczęcie połączenia,
mysqli_set_charset() - ustawiamy wersję kodowania znaków,
die() - w przypadku braku połączenia przerywa dalsze działanie skryptu,
mysqli_close() - zakończenie połączenia

Przykładowy kod połączenia - sposób 1:

                

                
		//mysqli_connect('nazwa hosta', 'nazwa uzytkownika', 'hasło', 'nazwa bazy danych');
				
		$con=mysqli_connect("localhost","root","","komis") or die("Błąd połączenia");
				
		
		//ustawienie kodowania znaków
		mysqli_set_charset($con,'utf8');
				
				
		echo "Jest połączenie z serwerem";
				
				
		//zakończenie połączenia
		mysqli_close($con);

				
				
	
	

                

               
        

Możemy trochę inaczej rozbudować nasz kod używając metod:

mysqli_connect_error() - W przypadku braku połączenia zwraca nam opis błędu
mysqli_connect_errno() - W przypadku braku połączenia zwraca nam opis błędu
mysqli_select_db() - osobna metoda wyboru bazy

Przykładowy kod połączenia - sposób 2:

                

                
		//połączenie z serwerem MSQL
		//@ - wyłączenie informacji o błędzie w przypadku nienawiązania połączenia
			
		$con = @mysqli_connect("localhost", "root", "");
			
		//ustawienie kodowania znaków
		mysqli_set_charset($conn,'utf8');
			
			//wybór ba
		mysqli_select_db($con, "komis");

		//sprawdzenie połączenia
		if(!$con){
			//die("Brak połączenia z serwerem, opis błędu".mysqli_connect_error());
			die("Brak połączenia z serwerem, numer błędu: ".mysqli_connect_errno());
		}else{
			echo "Jest połączenie z serwerem";
				
			//zamknięcie połączenia
			mysqli_close($con);
		}

				
				
	
	

                

               
        

Możemy również rozbudować kod definiując w zmiennych tzw. "login credentials", czyli dane dostępu do serwera mysql.

Przykładowy kod połączenia - sposób 3:

                

		//Ustawienia serwera mysql - login credentials:

		$host = "localhost";
		$db_user ="root";
		$db_pass ="";
		$db_name ="komis";
				
		//Dane dostępu możemy dodatkowo umieścić sobie w zewnętrznym pliku connect.php,
		//następnie podłączyć go do naszego pliku za pomocą metody require_once("connect.php");

		//Połączenie z serwerem
		$con = @new mysqli($host, $db_user, $db_pass, $db_name);
				
		//ustawienie kodowania znaków
		mysqli_set_charset($conn,'utf8');
			
			

		//sprawdzenie połączenia
		if(!$con){
			//die("Brak połączenia z serwerem, opis błędu".mysqli_connect_error());
			die("Brak połączenia z serwerem, numer błędu: ".mysqli_connect_errno());
		}else{
			echo "Jest połączenie z serwerem";
					
			//zamknięcie połączenia
			mysqli_close($con);
		}

                

                

               
        

Ponadto możemy użyć również składni w zapisie obiektowym.

Przykładowy kod połączenia - sposób 4:

                

		//Ustawienia serwera mysql

		$host = "localhost";
		$db_user ="root";
		$db_pass ="";
		$db_name ="komis";

		//Połączenie z serwerem
		$con = @new mysqli($host, $db_user, $db_pass, $db_name);

		if($con -> connect_errno!=0){
					
			echo "Error".$con->connect_errno;

		}else{

			echo "Jest połączenie z serwerem";

			$con-> close();
		}
                

               
        

Wypisanie danych z bazy

Używając pierwszego sposobu połączenia z serwerem mysql, wypiszemy informacje zawarte w wybranej tabeli.

Użyte metody:
mysqli_query() - metoda wysyłająca zapytania w języku sql, przyjmuje dwa atrybuty: informację o połączeniu i zapytanie sql do bazy,
mysqli_fetch_array() - metoda, która grupuje odpowiedź z serwera w specjalnej tablicy,

                

		$con=mysqli_connect("localhost","root","","komis") or die("Błąd połączenia");
				
				
		//ustawienie kodowania znaków
		mysqli_set_charset($con,'utf8');
				
				
		//zapytanie do bazy msql
		$sql = "select * from samochody where kolor='czerwony' and rocznik='2016'";

		//wysłanie zapytania
		$pyt = mysqli_query($con,$sql);

		//wypisanie odpowiedzi
		echo "	<table border=1>";
				
			//za pomocą pętli wypisujemy wszystkie wiersze spełniające nasze zapytanie
				
		while($wiersz = mysqli_fetch_array($pyt)){
			echo "<tr><td>".$wiersz['id']."</td>
			<td>".$wiersz['marka']."</td><td>".$wiersz['model']."</td></tr>";
			}
				
				
		echo "	</table>";
				
				
		//zakończenie połączenia
		mysqli_close($con);

                
     
        

Wpisywanie danych do bazy

W pliku formularz.php został przygotowany formularz z którego wyślemy nasze dane do bazy danych

Plik formularz.php:

                
		<!DOCTYPE html>
		<html lang="pl">
		<head>
			<meta charset="UTF-8">
			<meta name="viewport" content="width=device-width, initial-scale=1.0">
			<meta http-equiv="X-UA-Compatible" content="ie=edge">
			<title>Document</title>
		</head>
		<body>
			<form action="wpiszDB.php" method="POST">
				<div>Marka</div>
				<div><input type="text" name="marka"></div>
				<div>Model</div>
				<div><input type="text" name="model"></div>
				<div>Rocznik</div>
				<div><input type="number" name="rocznik"></div>
				<div>Kolor</div>
				<div><input type="text" name="kolor"></div>
				<div>Stan</div>
				<div><input type="text" name="stan"></div>
				<br>
				<div><input type="reset" value="Wyczyść"></div>
				<br>
				<div><input type="submit" value="Dodaj"></div>
			</form>
		</body>
		</html>
              
			  
			  
				

                
     
        

Z pliku formularz.php przekazujemy dane z formularza do skryptu w pliku wpiszDB.php

                

		$con=mysqli_connect("localhost","root","","komis") or die("Błąd połączenia");
				
				
		//ustawienie kodowania znaków
		mysqli_set_charset($con,'utf8');
				
				
		//odczytanie danych z tablicy $_POST wysłanych z formularza w pliku formularz.php
				
		$marka =$_POST['marka'];
		$model =$_POST['model'];
		$rocznik =$_POST['rocznik'];
		$kolor =$_POST['kolor'];
		$stan =$_POST['stan'];

				

		//zapytanie sql
		$sql = "insert into samochody values(null, '$marka', '$model' , '$rocznik' , '$kolor' , '$stan')";

		//wysłanie zapytania
		$dodaj = mysqli_query($con, $sql);

		//sprawdzenie wyniku
		if($dodaj === true){
			echo "OK! Dodano wpis do bazy";
		}else{
			echo "Nie dodano wpisu";
		}
				
				
				
		mysqli_close($con);

                
     
        
Pliki do pobrania:

baza danych do powyższych przykładów: komis.sql