私たちのところでは、準備済みステートメントやトランザクション サポートなどの用途で、mysqli と PDO を分けて使用しています。プロジェクトによっては、どちらか一方を使用し、もう一方を使用するものもあります。現実的に、別の RDBMS に移行する可能性はほとんどありません。
私が PDO を好む唯一の理由は、準備されたステートメントに名前付きパラメータが許可され、私の知る限り mysqli ではそれが許可されないからです。
プロジェクトを統合して 1 つのアプローチのみを使用するようにする場合、標準としてどちらか一方を選択することには、他に長所と短所がありますか?
ベストアンサー1
そうですね、オブジェクト指向の側面、準備されたステートメント、それが標準になるという事実などについて議論することはできます。しかし、ほとんどの場合、誰かを説得するには、キラー機能を使う方が効果的だと私は知っています。それで、これが結論です。
PDOの本当に素晴らしい点は、データを取得して自動的にオブジェクトに挿入できることです。ORM(これは簡単なスクリプトなので) でも、オブジェクト マッピングは気に入っています。本当にクールです。
class Student {
public $id;
public $first_name;
public $last_name
public function getFullName() {
return $this->first_name.' '.$this->last_name
}
}
try
{
$dbh = new PDO("mysql:host=$hostname;dbname=school", $username, $password)
$stmt = $dbh->query("SELECT * FROM students");
/* MAGIC HAPPENS HERE */
$stmt->setFetchMode(PDO::FETCH_INTO, new Student);
foreach($stmt as $student)
{
echo $student->getFullName().'<br />';
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}