Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:php:php_adatbazis:mysql_pdo

< PHP adatbázis

MySQL PDO

  • Szerző: Sallai András
  • Copyright © Sallai András, 2019
  • Licenc: GNU Free Documentation License 1.3

PDO

Hasonló a Perl nyelv DBI kommunikációs felülethez. A PDO használatának előnye, hogy ha más típusú adatbázist kell használni, nem sokat kell változtatni a kódon.

Kapcsolódás

connect.php
<?php
 
$user = 'erdo';
$pass = 'titok';
$host = 'localhost';
$dbname = 'erdo';
 
try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Sikeres kapcsolat";
}catch(PDOException $e) {
    echo $e->getMessage();
}
 
$conn = null;

Adatbázis létrehozása

createdb.php
<?php
 
$user = 'erdo';
$pass = 'titok';
$host = 'localhost';
 
try {
	$conn = new PDO("mysql:host=$host", $user, $pass);
	$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $sql = "create database erdo";
	$conn->exec($sql);
	echo "Sikeresen adatbázis létrehozás";
 
}catch(PDOException $e) {
	echo $e->getMessage();
}
 
$conn = null;

Tábla létrehozása

createtable.php
<?php
 
$user = 'erdo';
$pass = 'titok';
$host = 'localhost';
$dbname = 'erdo';
 
try {
	$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
	$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $sql = "create table dolgozok (
        az int primary key auto_increment,
        vnev varchar(30),
        knev varchar(30),
        telepules varchar(30),
        fizetes double
	)";
	$conn->exec($sql);
	echo "Sikeresen tábla létrehozás";
 
}catch(PDOException $e) {
	echo $e->getMessage();
}
 
$conn = null;

Beszúrás

beszur.php
<?php
 
$user = 'erdo';
$pass = 'titok';
$host = 'localhost';
$dbname = 'erdo';
 
try {
	$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
 
	$sql = "insert into termekek (nev, ar, mennyiseg) values ('áfonya', 520, 48)";
	$conn->exec($sql);
	echo "Sikeresen beszúrva";
 
}catch(PDOException $e) {
	echo $e->getMessage();
}
 
$conn = null;

Azonosító lekérdezése

getid.php
<?php
 
$user = 'erdo';
$pass = 'titok';
$host = 'localhost';
$dbname = 'erdo';
 
try {
	$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
	$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $sql = "insert into dolgozok
        (vnev, knev, telepules, fizetes)
        values
        ('Nagy', 'János', 'Szolnok', 1350000)
	";
	$conn->exec($sql);
    $az = $conn->lastInsertId();
	echo "Sikeresen beszúrás. Azonosító: $az";
 
}catch(PDOException $e) {
	echo $e->getMessage();
}
 
$conn = null;

Tranzakció

transaction.php
<?php
 
$user = 'erdo';
$pass = 'titok';
$host = 'localhost';
$dbname = 'erdo';
 
try {
	$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
	$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $conn->beginTransaction();
 
    $sql = "insert into dolgozok (vnev, knev, telepules, fizetes)
    values ('Nagy', 'János', 'Szolnok', 1350000)";
    $conn->exec($sql);
 
    $sql = "insert into dolgozok (vnev, knev, telepules, fizetes)
    values ('Tanka', 'Pál', 'Budapest', 2450000)";
    $conn->exec($sql);
 
    $sql = "insert into dolgozok (vnev, knev, telepules, fizetes)
    values ('Tola', 'Frigyes', 'Szolnok', 1740500)";
    $conn->exec($sql);
 
    $conn->commit();
 
	echo "Sikeresen tranzakció";
 
}catch(PDOException $e) {
    $conn->rollback();
	echo $e->getMessage();
}
 
$conn = null;

A prepare használata

index.php
<?php
 
$user = "felhasznalonev";
$pass = "titok";
$host = "localhost";
$db = "proba";
 
$conn = new PDO("mysql:$host=$host;dbname=$db;charset=UTF-8", "$user", "$pass");
 
try
{
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $conn->beginTransaction();
 
    $sql = "UPDATE Szemely SET telepules=? WHERE id=?";
    $pre = $db->prepare($sql);
    $pre->execute(array('Szeged', 2));
    $pre->execute(array('Zalaegerszeg', 3));
 
 
    $conn->commit();
} catch (PDOException $e)
{
    $conn->rollBack();
}
 
?>

A tömb értéke mindig behelyettesítődik.

Lekérdezés

index.php
<?php
 
$user = "felhasznalonev";
$pass = "titok";
$host = "localhost";
$db = "adatbazis";
 
 
$conn = new PDO("mysql:$host=$host;dbname=$db;charset=UTF8", "$user", "$pass");
 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
 
$sql = "SELECT User FROM user";
try {
 
    foreach($conn->query($sql) as $row)
        print $row['User'] . "\n";
 
}catch(PDOException $ex){
	echo "Hiba történt!";
	//naplozo_fuggveny($ex->getMessage());
}
 
 
 
?>

Módosítás

index.php
<?php
 
$user = "felhasznalonev";
$pass = "titok";
$host = "localhost";
$db = "proba";
 
$conn = new PDO("mysql:$host=$host;dbname=$db;charset=UTF-8", "$user", "$pass");
 
try
{
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $conn->beginTransaction();
    $sql = "UPDATE Szemely SET telepules='Debrecen' WHERE id=1";
    $conn->exec($sql);
 
    $sql = "UPDATE Szemely SET telepules='Debrecen' WHERE id=2";
    $conn->exec($sql);
 
    $conn->commit();
} catch (PDOException $e)
{
    $conn->rollBack();
}
 
 
?>

Törlés

delete.php
<?php
 
$user = 'erdo';
$pass = 'titok';
$host = 'localhost';
$dbname = 'erdo';
 
try {
	$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
	$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $sql = "delete from dolgozok where az=2";
    $conn->exec($sql);
 
	echo "Sikeresen törölve";
 
}catch(PDOException $e) {
	echo $e->getMessage();
}
 
$conn = null;

Linkek

oktatas/programozas/php/php_adatbazis/mysql_pdo.txt · Utolsó módosítás: 2019/08/22 10:28 szerkesztette: admin