Advertisement
gsmashik

PDO STATMENT

Aug 6th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.74 KB | None | 0 0
  1. <?php
  2. // Connect With PDO
  3. $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8mb4', 'username', 'password');
  4.  
  5. // 2ND METHOD CONNECT WITH PDO WITH EXTRA PARAMETER
  6. $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8mb4', 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false,
  7. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
  8.  
  9. // 3RD METHOD CONNECT WITH PDO WITH EXTRA PARAMETER
  10.  
  11. $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8mb4', 'username', 'password');
  12. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  13. $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22. // Query
  23.  
  24. // By TRY CATCH
  25. try {
  26.     //connect as appropriate as above
  27.     $db->query('hi'); //invalid query!
  28. } catch(PDOException $ex) {
  29.     echo "An Error occured!"; //user friendly message
  30.     some_logging_function($ex->getMessage());
  31. }
  32.  
  33.  
  34.  
  35. // QUERY WITH FUNCTION
  36. function getData($db) {
  37.    $stmt = $db->query("SELECT * FROM table");
  38.    return $stmt->fetchAll(PDO::FETCH_ASSOC);
  39. }
  40.  
  41. //then much later
  42. try {
  43.    getData($db);
  44. } catch(PDOException $ex) {
  45.    //handle me.
  46. }
  47.  
  48.  
  49.  
  50. // Select With PDO
  51. // FIRST METHOD
  52. foreach($db->query('SELECT * FROM table') as $row) {
  53.     echo $row['field1'].' '.$row['field2']; //etc...
  54. }
  55.  
  56. // 2ND METHOD
  57. $stmt = $db->query('SELECT * FROM table');
  58.  
  59. while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  60.     echo $row['field1'].' '.$row['field2']; //etc...
  61. }
  62.  
  63. // 3RD METHOD
  64. $stmt = $db->query('SELECT * FROM table');
  65. $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
  66. //use $results
  67.  
  68.  
  69.  
  70. // Getting Row Count
  71. $stmt = $db->query('SELECT * FROM table');
  72. $row_count = $stmt->rowCount();
  73. echo $row_count.' rows selected';
  74.  
  75. // Getting the Last Insert Id
  76. $result = $db->exec("INSERT INTO table(firstname, lastname) VAULES('John', 'Doe')");
  77. $insertId = $db->lastInsertId()
  78.  
  79.  
  80. // PDO UPDATE DELETE
  81. $affected_rows = $db->exec("UPDATE table SET field='value'");
  82. echo $affected_rows.' were affected';
  83.  
  84.  
  85. // Running Statements With Parameters
  86. $stmt = $db->prepare("SELECT * FROM table WHERE id=? AND name=?");
  87. $stmt->execute(array($id, $name));
  88. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  89.  
  90.  
  91. // Running Statements With Parameters
  92. $stmt = $db->prepare("SELECT * FROM table WHERE id=? AND name=?");
  93. $stmt->bindValue(1, $id, PDO::PARAM_INT);
  94. $stmt->bindValue(2, $name, PDO::PARAM_STR);
  95. $stmt->execute();
  96. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  97.  
  98. // Named Placeholders
  99. $stmt = $db->prepare("SELECT * FROM table WHERE id=:id AND name=:name");
  100. $stmt->bindValue(':id', $id, PDO::PARAM_INT);
  101. $stmt->bindValue(':name', $name, PDO::PARAM_STR);
  102. $stmt->execute();
  103. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  104.  
  105.  
  106. $stmt = $db->prepare("SELECT * FROM table WHERE id=:id AND name=:name");
  107. $stmt->execute(array(':name' => $name, ':id' => $id));
  108. $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  109.  
  110. // INSERT, DELETE, UPDATE Prepared Queries
  111. $stmt = $db->prepare("INSERT INTO table(field1,field2,field3,field4,field5) VALUES(:field1,:field2,:field3,:field4,:field5)");
  112. $stmt->execute(array(':field1' => $field1, ':field2' => $field2, ':field3' => $field3, ':field4' => $field4, ':field5' => $field5));
  113. $affected_rows = $stmt->rowCount();
  114.  
  115.  
  116. $stmt = $db->prepare("DELETE FROM table WHERE id=:id");
  117. $stmt->bindValue(':id', $id, PDO::PARAM_STR);
  118. $stmt->execute();
  119. $affected_rows = $stmt->rowCount();
  120.  
  121. $stmt = $db->prepare("UPDATE table SET name=? WHERE id=?");
  122. $stmt->execute(array($name, $id));
  123. $affected_rows = $stmt->rowCount();
  124.  
  125. // Executing prepared statements in a loop
  126. $values = array('bob', 'alice', 'lisa', 'john');
  127. $name = '';
  128. $stmt = $db->prepare("INSERT INTO table(`name`) VALUES(:name)");
  129. $stmt->bindParam(':name', $name, PDO::PARAM_STR);
  130. foreach($values as $name) {
  131.    $stmt->execute();
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement