Accessing Mysql Using Pdo: This Work Is Licensed Under A
Accessing Mysql Using Pdo: This Work Is Licensed Under A
SQL
Developer
Database
Tools
DBA
(phpMyAdmin)
Multiple Ways to Access MySql
• PHP is evolving - there are three ways to access MySql
- Legacy non-OO mysql_ routines (deprecated)
- New mysqli (OO version that is similar to mysql_)
- PDO - Portable Data Objects
• A perfect topic for debate
http://php.net/manual/en/mysqlinfo.api.choosing.ph
p
http://php.net/manual/en/mysqlinfo.api.choosing.ph
p
Creating a Database and User
CREATE DATABASE misc;
https://github.com/massoudhamad/webpebl/tree/master/pdo
pdo.php
Database Connection
Hostname
misc sakai
PHP SQL
users
Software
id / password
third.php Array(
[user_id] => 1
[name] => Chuck
[email] => [email protected]
<?php [password] => 123
require_once "pdo.php"; )
echo "<pre>\n"; Array(
$stmt = $pdo->query("SELECT * FROM users"); [user_id] => 2
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); [name] => Glenn
[email] => [email protected]
print_r($rows); [password] => 456
echo "</pre>\n";?> )
Let’s Put Some Data
in a Database!
<?php
require_once "pdo.php";
if ( isset($_POST['name']) && isset($_POST['email'])
&& isset($_POST['password'])) {
$sql = "INSERT INTO users (name, email, password)
VALUES (:name, :email, :password)";
echo("<pre>\n".$sql."\n</pre>\n");
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
':name' => $_POST['name'],
':email' => $_POST['email'],
':password' => $_POST['password']));
}
?><html><head></head><body>
<p>Add A New User</p>
<form method="post">
<p>Name:<input type="text" name="name" size="40"></p>
<p>Email:<input type="text" name="email"></p>
<p>Password:<input type="password" name="password"></p>
<p><input type="submit" value="Add New"/></p>
</form>
</body> user1.php
user1.php
if ( isset($_POST['user_id']) ) {
$sql="DELETE FROM users WHERE user_id = :zip";
echo "<pre>\n$sql\n</pre>\n";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(':zip'=>$_POST['user_id']));
}
?>
<p>Delete A User</p>
<form method="post"><p>ID to Delete:
<input type="text" name="user_id"></p>
<p><input type="submit" value="Delete"/></p>
</form>
user2del.php
<?php
require_once "pdo.php";
if ( isset($_POST['user_id']) ) {
$sql="DELETE FROM users WHERE user_id = :zip";
echo "<pre>\n$sql\n</pre>\n";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(':zip'=>$_POST['user_id']));
}
?>
<p>Delete A User</p>
<form method="post"><p>ID to Delete:
<input type="text" name="user_id"></p>
<p><input type="submit" value="Delete"/></p>
</form>
user2del.php
mysql> select * from users;
+---------+-------+----------------+----------+
| user_id | name | email | password |
+---------+-------+----------------+----------+
| 1 | Chuck | [email protected] | 123 |
| 2 | Glenn | [email protected] | 456 |
| 3 | Sally | [email protected] | 123 |
+---------+-------+----------------+----------+
user3.php
if ( isset($_POST['delete']) && isset($_POST['user_id']) ) {
$sql = "DELETE FROM users WHERE user_id = :zip";
echo "<pre>\n$sql\n</pre>\n";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(':zip' => $_POST['user_id']));
}
$stmt = $pdo->query("SELECT name, email, password, user_id FROM users");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
?><html><head></head>
<body>
<table border="1">
<?php
foreach ( $rows as $row ) {
echo "<tr><td>";
echo($row['name']);
echo("</td><td>");
echo($row['email']);
echo("</td><td>");
echo($row['password']);
echo("</td><td>");
echo('<form method="post"><input type="hidden" ');
echo('name="user_id" value="'.$row['user_id'].'">'."\n");
echo('<input type="submit" value="Del" name="delete">');
echo("\n</form>\n"); user3.php
echo("</td></tr>\n");
}
echo('<form method="post"><input type="hidden" ');
echo('name="user_id" value="'.$row['user_id'].'">'."\n");
echo('<input type="submit" value="Del" name="delete">');
echo("\n</form>\n");
<tr><td>Fred</td><td>[email protected]</td>
<td>YO</td>
<td><form method="post">
<input type="hidden" name="user_id" value="5">
<input type="submit" value="Del" name="delete">
</form></td>
</tr>
if ( isset($_POST['delete']) &&
isset($_POST['user_id']) ) {
$sql = "DELETE FROM users WHERE user_id = :zip";
echo "<pre>\n$sql\n</pre>\n";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(':zip' => $_POST['user_id']));
}
if ( isset($_POST['delete']) && isset($_POST['user_id']) ) {
$sql = "DELETE FROM users WHERE user_id = :zip";
echo "<pre>\n$sql\n</pre>\n";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(':zip' => $_POST['user_id']));
}
<?php
require_once "pdo.php";
if ( isset($_POST['name']) && isset($_POST['email'])
&& isset($_POST['password'])) {
Program
$sql = "INSERT INTO users (name, email, password)
VALUES (:name, :email, :password)";
echo("<pre>\n".$sql."\n</pre>\n");
Outline
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
':name' => $_POST['name'],
':email' => $_POST['email'],
<?php
require_once "pdo.php";I
f ( isset($_POST['name']) && isset($_POST['email'])
&& isset($_POST['password'])) {
}
$stmt->execute(array(
':name' => $_POST['name'],
':email' => $_POST['email'],
':password' => $_POST['password']));
}
if ( isset($_POST['delete']) && isset($_POST['user_id']) ) {
$sql = "DELETE FROM users WHERE user_id = :zip";
echo "<pre>\n$sql\n</pre>\n";
echo "<pre>\n$sql\n</pre>\n";
$stmt = $pdo->query("SELECT name, email, password, user_id FROM users");
while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
echo "<tr><td>";
echo($row['name']);
$stmt = $pdo->prepare($sql);
echo("</td><td>");
echo($row['email']);
echo("</td><td>");
echo($row['password']);
}
echo("\n</form>\n");
echo("</td></tr>\n");
}
?>
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
<p>Password:<input type="password" name="password"></p><
p><input type="submit" value="Add New"/></p>
</form>
</body>
?>
<html><head></head>
<body><table border="1">
<?php
foreach ( $rows as $row ) {
echo "<tr><td>";
echo($row['name']);
echo("</td><td>");
echo($row['email']);
echo("</td><td>"); <?php
require_once "pdo.php";I
echo("</td><td>"); echo("<pre>\n".$sql."\n</pre>\n");
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
':name' => $_POST['name'],
} echo("</td><td>");
echo($row['password']);
echo("</td><td>");
echo('<form method="post"><input type="huser_idden" ');
</table> }
?>
</table>
<p>Add A New User</p><form method="post">
<p>Name:<input type="text" name="name" size="40"></p>
<p>Email:<input type="text" name="email"></p>
<p>Password:<input type="password" name="password"></p><
p><input type="submit" value="Add New"/></p>
</form>
</body>
Program
Outline
<p>Add A New User</p>
<form method="post">
<p>Name:<input type="text" name="name" size="40"></p> <?php
</form>
if ( isset($_POST['delete']) && isset($_POST['user_id']) ) {
$sql = "DELETE FROM users WHERE user_id = :zip";
echo "<pre>\n$sql\n</pre>\n";
$stmt = $pdo->prepare($sql);
</body>
$stmt->execute(array(':zip' => $_POST['user_id']));
}
?>
<html><head></head>
<body>
<table border="1">
<?php
$stmt = $pdo->query("SELECT name, email, password, user_id FROM users");
while ( $row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
echo "<tr><td>";
echo($row['name']);
echo("</td><td>");
echo($row['email']);
echo("</td><td>");
echo($row['password']);
echo("</td><td>");
echo('<form method="post"><input type="huser_idden" ');
echo('name="user_id" value="'.$row['user_id'].'">'."\n");
echo('<input type="submit" value="Del" name="delete">');
echo("\n</form>\n");
echo("</td></tr>\n");
}
?>
</table>
<p>Add A New User</p><form method="post">
<p>Name:<input type="text" name="name" size="40"></p>
<p>Email:<input type="text" name="email"></p>
<p>Password:<input type="password" name="password"></p><
p><input type="submit" value="Add New"/></p>
</form>
</body>
Acknowledgements / Contributions
These slides are Copyright 2010- Charles R. Severance (www.dr- Continue new Contributors and Translators here
chuck.com) as part of www.wa4e.com and made available under a
Creative Commons Attribution 4.0 License. Please maintain this
last slide in all copies of the document to comply with the
attribution requirements of the license. If you make a change, feel
free to add your name and organization to the list of contributors on
this page as you republish the materials.