Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- echo "<table style='border: solid 1px black;'>";
- echo "<tr><th>ID</th><th>Nume</th><th>Prenume</th></tr>";
- // imi definesc o clasă proprie care extinde clasa existentă RecursiveIteratorIterator - un iterator recursiv predefinit în PHP.
- // noua clasă modifică patru funcții deja existente din clasa predefinită
- class TableRows extends RecursiveIteratorIterator
- {
- function __construct($it)
- {
- parent::__construct($it, self::LEAVES_ONLY);
- }
- function current()
- {
- return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
- }
- function beginChildren()
- {
- echo "<tr>";
- }
- Function endChildren()
- {
- echo "</tr>" . "\n";
- }
- }
- $servername = "localhost";
- $username = "root";
- $password = "root";
- $dbname = "test";
- try
- {
- $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
- // setează modul de eroare al PDO la “exceptie”
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- echo "Conexiune stabilita";
- echo '<br/>';
- }
- catch(PDOException $e)
- {
- echo "Conexiune esuata: " . $e->getMessage();
- echo '<br/>';
- }
- /*
- try
- {
- $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
- // setează modul de eroare al PDO la “exceptie”
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- $sql = "CREATE DATABASE test";
- // se utilizează exec() pentru că nu sunt returnate rezultate
- $conn->exec($sql);
- echo "Baza de date a fost creata cu succes.<br>";
- echo '<br/>';
- }
- catch(PDOException $e)
- {
- echo $sql . "<br>" . $e->getMessage();
- echo '<br/>';
- }
- */
- try
- {
- $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
- // setează modul de eroare al PDO la “exceptie”
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- // codul SQL pentru crearea tabelului
- $sql = "CREATE TABLE tabel (
- id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
- nume VARCHAR(30) NOT NULL,
- prenume VARCHAR(30) NOT NULL,
- email VARCHAR(50),
- reg_date TIMESTAMP
- )";
- // se utilizează exec() pentru că nu sunt returnate rezultate
- $conn->exec($sql);
- echo "Tabelul tabel a fost creat cu succes." ;
- echo '<br/>';
- }
- catch(PDOException $e)
- {
- echo $sql . "<br>" . $e->getMessage();
- echo '<br/>';
- }
- try
- {
- $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
- // setează modul de eroare al PDO la “exceptie”
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- $sql = "INSERT INTO tabel (nume, prenume, email) VALUES ('A', 'B', 'ab@example.com')";
- // se utilizează exec() pentru că nu sunt returnate rezultate
- $conn->exec($sql);
- echo "Noua inregistrare a fost creata cu succes";
- echo '<br/>';
- }
- catch(PDOException $e)
- {
- echo $sql . $e->getMessage();
- echo '<br/>';
- }
- try
- {
- $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
- // setează modul de eroare al PDO la “exceptie”
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- // începe tranzacția
- $conn->beginTransaction();
- // se concatenează inserările
- $conn->exec("INSERT INTO tabel (nume, prenume, email) VALUES ('B', 'C', 'ha@example.com')");
- $conn->exec("INSERT INTO tabel (nume, prenume, email) VALUES ('D', 'E', 'mde@example.com')");
- $conn->exec("INSERT INTO tabel (nume, prenume, email) VALUES ('F', 'G', 'fg@example.com')");
- // comiterea tranzacției
- $conn->commit();
- echo "Noile înregistrări au fost inserate cu succes";
- echo '<br/>';
- }
- catch(PDOException $e)
- {
- // dacă ceva nu a mers cum trebuie derulez înapoi tranzacția
- $conn->rollback();
- echo "Eroare: " . $e->getMessage();
- echo '<br/>';
- }
- try
- {
- $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
- // setează modul de eroare al PDO la “exceptie”
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- // codul SQL pentru ștergere
- $sql = "DELETE FROM tabel WHERE id=4";
- // se utilizează exec() pentru că nu sunt returnate rezultate
- $conn->exec($sql);
- echo "Datele au fost șterse";
- echo '<br/>';
- }
- catch(PDOException $e)
- {
- echo $sql . "<br>" . $e->getMessage();
- echo '<br/>';
- }
- try
- {
- $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
- // setează modul de eroare al PDO la “exceptie”
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- $sql = "UPDATE tabel SET prenume='FSdfs' WHERE id=1";
- // Pregătirea interogării
- $stmt = $conn->prepare($sql);
- // execuția modificărilor
- $stmt->execute();
- // un mesaj pentru cazul în care modificarea s-a făcut cu succes
- echo $stmt->rowCount() . " înregistrări modificate cu succes";
- echo '<br/>';
- }
- catch(PDOException $e)
- {
- echo $sql . $e->getMessage();
- echo '<br/>';
- }
- try
- {
- $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
- // setează modul de eroare al PDO la “exceptie”
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- $stmt = $conn->prepare("SELECT id, nume, prenume FROM tabel");
- $stmt->execute();
- // dacă au fost găsite inregistrări care corespund criteriului, ele vor fi stocate într-o matrice asociativă
- $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
- foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v)
- {
- // fiecare înregistrare trebuie afișată pe rând, după ce a fost preluată din matrice
- // preluarea se face utilizând un iterator din clasa definită mai sus prin extindere
- echo $v;
- }
- }
- catch(PDOException $e)
- {
- echo "Eroare: " . $e->getMessage();
- echo '<br/>';
- }
- $conn = null;
- echo "</table>";
- ?>
Add Comment
Please, Sign In to add comment