oktatas:programozas:php:php_adatbazis:mysql_pdo
Tartalomjegyzék
MySQL PDO
- Szerző: Sallai András
- Copyright © Sallai András, 2019
- Licenc: GNU Free Documentation License 1.3
- Web: https://szit.hu
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