"PDO - PHP Data Objects is an interlayer that offers a universal way to work with multiple databases."
print_r(PDO::getAvailableDrivers());
try {
# MS SQL Server Sybase PDO_DBLIB
$DBH = new PDO("mssql:host=$host;dbname=$dbname", $user, $pass);
$DBH = new PDO("sybase:host=$host;dbname=$dbname", $user, $pass);
# MySQL PDO_MYSQL
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
# SQLite
$DBH = new PDO("sqlite:my/database/path/database.db");
}
catch(PDOException $e) {
echo $e->getMessage();
}
#
$DBH = null;
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT );
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
#
try {
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
# ! DELECT SELECT!
$DBH->prepare('DELECT name FROM people')->execute();
}
catch(PDOException $e) {
echo ", .";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
# STH "Statement Handle"
$STH = $DBH->prepare("INSERT INTO folks ( first_name ) values ( 'Cathy' )");
$STH->execute();
prepared statements SQL-.
# placeholders - SQL- !
$STH = $DBH->prepare("INSERT INTO folks (name, addr, city) values ($name, $addr, $city)");
# placeholders
$STH = $DBH->prepare("INSERT INTO folks (name, addr, city) values (?, ?, ?)");
# placeholders
$STH = $DBH->prepare("INSERT INTO folks (name, addr, city) values (:name, :addr, :city)");
# placeholder, 1 3
$STH->bindParam(1, $name);
$STH->bindParam(2, $addr);
$STH->bindParam(3, $city);
#
$name = "Daniel"
$addr = "1 Wicked Way";
$city = "Arlington Heights";
$STH->execute();
# ,
$name = "Steve"
$addr = "5 Circle Drive";
$city = "Schaumburg";
$STH->execute();
# ,
$data = array('Cathy', '9 Dark and Twisty Road', 'Cardiff');
$STH = $DBH->prepare("INSERT INTO folks (name, addr, city) values (?, ?, ?)");
$STH->execute($data);
# placeholder’
#
#
$STH->bindParam(':name', $name);
# ,
$data = array( 'name' => 'Cathy', 'addr' => '9 Dark and Twisty', 'city' => 'Cardiff' );
$STH = $DBH->prepare("INSERT INTO folks (name, addr, city) values (:name, :addr, :city)");
$STH->execute($data);
#
class person {
public $name;
public $addr;
public $city;
function __construct($n,$a,$c) {
$this->name = $n;
$this->addr = $a;
$this->city = $c;
}
# ...
}
$cathy = new person('Cathy','9 Dark and Twisty','Cardiff');
#
$STH = $DBH->prepare("INSERT INTO folks (name, addr, city) values (:name, :addr, :city)");
$STH->execute((array)$cathy);
$STH->setFetchMode(PDO::FETCH_ASSOC);
# placeholder’,
# query()
$STH = $DBH->query('SELECT name, addr, city from folks');
#
$STH->setFetchMode(PDO::FETCH_ASSOC);
while($row = $STH->fetch()) {
echo $row['name'] . "\n";
echo $row['addr'] . "\n";
echo $row['city'] . "\n";
}
#
$STH = $DBH->query('SELECT name, addr, city from folks');
#
$STH->setFetchMode(PDO::FETCH_OBJ);
#
while($row = $STH->fetch()) {
echo $row->name . "\n";
echo $row->addr . "\n";
echo $row->city . "\n";
}
class secret_person {
public $name;
public $addr;
public $city;
public $other_data;
function __construct($other = '') {
$this->addr = preg_replace('/[a-z]/', 'x', $this->addr);
$this->other_data = $other;
}
}
$STH = $DBH->query('SELECT name, addr, city from folks');
$STH->setFetchMode(PDO::FETCH_CLASS, 'secret_person');
while($obj = $STH->fetch()) {
echo $obj->addr;
}
$STH->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'secret_person');
$STH->setFetchMode(PDO::FETCH_CLASS, 'secret_person', array('stuff'));
$i = 0;
while($rowObj = $STH->fetch(PDO::FETCH_CLASS, 'secret_person', array($i))) {
// -
$i++;
}
$DBH->lastInsertId();
$DBH->exec('DELETE FROM folks WHERE 1');
$DBH->exec("SET time_zone = '-8:00'");
$safe = $DBH->quote($unsafe);
$rows_affected = $STH->rowCount();
$sql = "SELECT COUNT(*) FROM folks";
if ($STH = $DBH->query($sql)) {
#
if ($STH->fetchColumn() > 0) {
# , !
}
else {
# ,
}
}
Source: https://habr.com/ru/post/137664/
All Articles