This are some of the methods when working with PDO.
<?php $host = 'localhost'; $user = 'root'; $pass = ''; $dbname = 'connecttutorial'; $charset = 'utf8'; $dsn = "mysql:host={$host};dbname={$dbname};charset={$charset}"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; try{ $pdo = new PDO($dsn, $user, $pass, $opt); } catch(PDOException $e) { die('Could not connect to the database using credentials given. Error code: '.$e->getCode()); } // CREATE ------------------------------------------------------------------------------------------- try { $sql = "INSERT INTO books (collection, title, author) VALUES (?,?,?)"; $pdo->prepare($sql)->execute(['World of Warcraft','War crimes', 'Christie Golden']); $sql = "INSERT INTO books (collection, title, author) VALUES (:collection,:title,:author)"; $pdo->prepare($sql)->execute(['collection' => 'Warcraft','title' => 'The Shattering', 'author' => 'Christie Golden']); // get id for the last insterted row $id = $pdo->lastInsertId(); } catch(PDOException $e) { die('There was a problem when inserting. Returned message was: '.$e->getMessage()); var_dump($e); } // READ -------------------------------------------------------------------------------------------- try { $stmt = $pdo->query("SELECT * FROM books ORDER BY author ASC, title ASC"); foreach($stmt as $row) { echo $row['collection'].': '.$row['title'].' - '.$row['author'].'<br />'; } } catch (PDOException $e) { die('There was a problem when trying to read from table. Returned message was: '.$e->getMessage()); } // READ ONE ROW ------------------------------------------------------------------------------------ try { $stmt = $pdo->query("SELECT * FROM books LIMIT 1"); $row = $stmt->fetch(); /** * we can also fetch() another way: * fetch(PDO::FETCH_NUM) - every field has a numeric key * fetch(PDO::FETCH_ASSOC) - every field has the column name as key (default, as set in $opt) * fetch(PDO::FETCH_BOTH) - both of the above * fetch(PDO::FETCH_OBJ) - returns object * fetch(PDO::FETCH_LAZY) - all three * fetch(PDO::FETCH_CLASS, 'Book') - the returned row is of a certain class (also works on multiple rows) */ var_dump($row); echo '<br />'; } catch (PDOException $e) { die('There was a problem when trying to read one row from table. Returned message was: '.$e->getMessage()); } // READ ONLY ONE COLUMN FROM A RETURNED ROW -------------------------------------------------------- try { $stmt = $pdo->prepare("SELECT title FROM books WHERE author LIKE ? LIMIT 1"); $stmt->execute(['Christie Golden']); $bookTitle = $stmt->fetchColumn(); echo 'Title: '.$bookTitle.'<br />'; } catch (PDOException $e) { die('There was a problem when trying to read one row column from table. Returned message was: '.$e->getMessage()); } // READ COUNT OF RESULT----------------------------------------------------------------------------- try { $count = $pdo->query("SELECT count(*) FROM books")->fetchColumn(); echo 'Total rows: '.$count.'<br />'; } catch (PDOException $e) { die('There was a problem when trying to read one row column from table. Returned message was: '.$e->getMessage()); } // UPDATE ------------------------------------------------------------------------------------------ try { $sql = "UPDATE books SET collection = ? WHERE collection = ?"; $pdo->prepare($sql)->execute(['World of Warcraft', 'Warcraft']); } catch (PDOException $e) { die('There was a problem when trying to update. Returned message was: '.$e->getMessage()); } // UPDATE WITH ROWS COUNT -------------------------------------------------------------------------- try { $stmt = $pdo->prepare("UPDATE books SET collection = ? WHERE collection = ?"); $stmt->execute(['Warcraft', 'World of Warcraft']); $affectedRows = $stmt->rowCount(); echo 'Affected rows: '.$affectedRows.'<br />'; } catch (PDOException $e) { die('There was a problem when trying to update. Returned message was: '.$e->getMessage()); } // DELETE ------------------------------------------------------------------------------------------ try { $sql = "DELETE FROM books WHERE title LIKE ?"; $pdo->prepare($sql)->execute(['%Crimes%']); } catch (PDOException $e) { die('There was a problem when trying to delete. Returned message was: '.$e->getMessage()); } // DELETE WITH ROW COUNT -------------------------------------------------------------------------- try { $count = $pdo->prepare("DELETE FROM books"); $count->execute(); $deletedRows = $count->rowCount(); echo ('Deleted rows: '.$deletedRows); } catch (PDOException $e) { die('There was a problem when trying to delete. Returned message was: '.$e->getMessage()); }