Guest User

Untitled

a guest
Jun 19th, 2018
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.76 KB | None | 0 0
  1. <?php
  2.  
  3. echo "<table style='border: solid 1px black;'>";
  4. echo "<tr><th>ID</th><th>Nume</th><th>Prenume</th></tr>";
  5.  
  6. // imi definesc o clasă proprie care extinde clasa existentă RecursiveIteratorIterator - un iterator recursiv predefinit în PHP.
  7. // noua clasă modifică patru funcții deja existente din clasa predefinită
  8. class TableRows extends RecursiveIteratorIterator
  9. {
  10. function __construct($it)
  11. {
  12. parent::__construct($it, self::LEAVES_ONLY);
  13. }
  14.  
  15. function current()
  16. {
  17. return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
  18. }
  19.  
  20. function beginChildren()
  21. {
  22. echo "<tr>";
  23. }
  24.  
  25. Function endChildren()
  26. {
  27. echo "</tr>" . "\n";
  28. }
  29. }
  30.  
  31. $servername = "localhost";
  32. $username = "root";
  33. $password = "root";
  34. $dbname = "test";
  35.  
  36.  
  37. try
  38. {
  39. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  40. // setează modul de eroare al PDO la “exceptie”
  41. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  42. echo "Conexiune stabilita";
  43. echo '<br/>';
  44. }
  45. catch(PDOException $e)
  46. {
  47. echo "Conexiune esuata: " . $e->getMessage();
  48. echo '<br/>';
  49. }
  50. /*
  51. try
  52. {
  53. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  54. // setează modul de eroare al PDO la “exceptie”
  55. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  56. $sql = "CREATE DATABASE test";
  57. // se utilizează exec() pentru că nu sunt returnate rezultate
  58. $conn->exec($sql);
  59. echo "Baza de date a fost creata cu succes.<br>";
  60. echo '<br/>';
  61. }
  62. catch(PDOException $e)
  63. {
  64. echo $sql . "<br>" . $e->getMessage();
  65. echo '<br/>';
  66. }
  67.  
  68. */
  69.  
  70.  
  71. try
  72. {
  73. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  74. // setează modul de eroare al PDO la “exceptie”
  75. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  76.  
  77. // codul SQL pentru crearea tabelului
  78. $sql = "CREATE TABLE tabel (
  79. id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  80. nume VARCHAR(30) NOT NULL,
  81. prenume VARCHAR(30) NOT NULL,
  82. email VARCHAR(50),
  83. reg_date TIMESTAMP
  84. )";
  85.  
  86. // se utilizează exec() pentru că nu sunt returnate rezultate
  87. $conn->exec($sql);
  88. echo "Tabelul tabel a fost creat cu succes." ;
  89. echo '<br/>';
  90. }
  91. catch(PDOException $e)
  92. {
  93. echo $sql . "<br>" . $e->getMessage();
  94. echo '<br/>';
  95. }
  96.  
  97. try
  98. {
  99. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  100. // setează modul de eroare al PDO la “exceptie”
  101. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  102. $sql = "INSERT INTO tabel (nume, prenume, email) VALUES ('A', 'B', 'ab@example.com')";
  103. // se utilizează exec() pentru că nu sunt returnate rezultate
  104. $conn->exec($sql);
  105. echo "Noua inregistrare a fost creata cu succes";
  106. echo '<br/>';
  107. }
  108. catch(PDOException $e)
  109. {
  110. echo $sql . $e->getMessage();
  111. echo '<br/>';
  112. }
  113.  
  114. try
  115. {
  116. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  117. // setează modul de eroare al PDO la “exceptie”
  118. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  119.  
  120. // începe tranzacția
  121. $conn->beginTransaction();
  122. // se concatenează inserările
  123. $conn->exec("INSERT INTO tabel (nume, prenume, email) VALUES ('B', 'C', 'ha@example.com')");
  124. $conn->exec("INSERT INTO tabel (nume, prenume, email) VALUES ('D', 'E', 'mde@example.com')");
  125. $conn->exec("INSERT INTO tabel (nume, prenume, email) VALUES ('F', 'G', 'fg@example.com')");
  126.  
  127.  
  128. // comiterea tranzacției
  129. $conn->commit();
  130. echo "Noile înregistrări au fost inserate cu succes";
  131. echo '<br/>';
  132. }
  133. catch(PDOException $e)
  134. {
  135. // dacă ceva nu a mers cum trebuie derulez înapoi tranzacția
  136. $conn->rollback();
  137. echo "Eroare: " . $e->getMessage();
  138. echo '<br/>';
  139. }
  140.  
  141. try
  142. {
  143. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  144. // setează modul de eroare al PDO la “exceptie”
  145. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  146.  
  147. // codul SQL pentru ștergere
  148. $sql = "DELETE FROM tabel WHERE id=4";
  149.  
  150. // se utilizează exec() pentru că nu sunt returnate rezultate
  151. $conn->exec($sql);
  152. echo "Datele au fost șterse";
  153. echo '<br/>';
  154. }
  155. catch(PDOException $e)
  156. {
  157. echo $sql . "<br>" . $e->getMessage();
  158. echo '<br/>';
  159. }
  160.  
  161.  
  162.  
  163. try
  164. {
  165. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  166. // setează modul de eroare al PDO la “exceptie”
  167. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  168.  
  169. $sql = "UPDATE tabel SET prenume='FSdfs' WHERE id=1";
  170.  
  171. // Pregătirea interogării
  172. $stmt = $conn->prepare($sql);
  173.  
  174. // execuția modificărilor
  175. $stmt->execute();
  176.  
  177. // un mesaj pentru cazul în care modificarea s-a făcut cu succes
  178. echo $stmt->rowCount() . " înregistrări modificate cu succes";
  179. echo '<br/>';
  180. }
  181. catch(PDOException $e)
  182. {
  183. echo $sql . $e->getMessage();
  184. echo '<br/>';
  185. }
  186.  
  187. try
  188. {
  189. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  190. // setează modul de eroare al PDO la “exceptie”
  191. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  192. $stmt = $conn->prepare("SELECT id, nume, prenume FROM tabel");
  193. $stmt->execute();
  194.  
  195. // dacă au fost găsite inregistrări care corespund criteriului, ele vor fi stocate într-o matrice asociativă
  196. $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
  197. foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v)
  198. {
  199. // fiecare înregistrare trebuie afișată pe rând, după ce a fost preluată din matrice
  200. // preluarea se face utilizând un iterator din clasa definită mai sus prin extindere
  201. echo $v;
  202. }
  203. }
  204. catch(PDOException $e)
  205. {
  206. echo "Eroare: " . $e->getMessage();
  207. echo '<br/>';
  208. }
  209. $conn = null;
  210. echo "</table>";
  211. ?>
Add Comment
Please, Sign In to add comment