Przeglądaj źródła

PDO: prepare && execute

me@helium 8 lat temu
rodzic
commit
a708093713
3 zmienionych plików z 51 dodań i 0 usunięć
  1. 25 0
      PDO.md
  2. 13 0
      PDO/init.php
  3. 13 0
      PDO/prepare.php

+ 25 - 0
PDO.md

@@ -35,3 +35,28 @@ try {
     die();
 }
 ```
+http://pdo.asmer.php1.a-level.com.ua/init.php
+
+Выше в коде показан один из способов выполнения запросов: использование метода `query` объекта класса PDO (`$dbh`, *database handler*) 
+с текстом запроса. `query` возвращает объект класса `PDOStatement`, который можно итерировать.
+
+Существует так же более безопасный и в определенных случаях более быстрый двухэтапный способ:
+
+```php
+<?php
+try {
+    $dbh = new PDO('mysql:host=localhost;dbname=test2', "test2", "TeSt2");
+    $sth = $dbh->prepare('INSERT INTO person SET name = :name, surname = :surname, father_name = :father_name'); 
+    $sth->execute(array( ":name" => "Donald", ":surname" => "Trump", ":father_name" => "Moishovich"));
+    foreach($dbh->query("SELECT * FROM person") as $row) {
+        print_r($row);
+    }
+    $dbh = null;
+} catch (PDOException $e) {
+    print "Error!: " . $e->getMessage() . "<br/>";
+    die();
+}
+```
+
+http://pdo.asmer.php1.a-level.com.ua/prepare.php
+

+ 13 - 0
PDO/init.php

@@ -0,0 +1,13 @@
+<?php
+try {
+    $dbh = new PDO('mysql:host=localhost;dbname=test2', "test2", "TeSt2");
+    $result = $dbh->query('SELECT * from person'); 
+    print_r(get_class($result) . "\n");
+    foreach($result as $row) {
+        print_r($row);
+    }
+    $dbh = null;
+} catch (PDOException $e) {
+    print "Error!: " . $e->getMessage() . "<br/>";
+    die();
+}

+ 13 - 0
PDO/prepare.php

@@ -0,0 +1,13 @@
+<?php
+try {
+    $dbh = new PDO('mysql:host=localhost;dbname=test2', "test2", "TeSt2");
+    $sth = $dbh->prepare('INSERT INTO person SET name = :name, surname = :surname, father_name = :father_name'); 
+    $sth->execute(array( ":name" => "Donald", ":surname" => "Trump", ":father_name" => "Moishovich"));
+    foreach($dbh->query("SELECT * FROM person") as $row) {
+        print_r($row);
+    }
+    $dbh = null;
+} catch (PDOException $e) {
+    print "Error!: " . $e->getMessage() . "<br/>";
+    die();
+}