PDO'ya genel bir bakış. Farklı veritabanları için PDO nasıl kullanılır?

2 hafta önce , Okuma süresi 2 dakika.

Bu makalede, PDO'ya bir göz atın ve farklı veritabanları için nasıl kullanılacağını görün.
PDO'ya genel bir bakış. Farklı veritabanları için PDO nasıl kullanılır?
Bu yazıda PDO'nun ne olduğu, neden gerekli olduğu ve onunla nasıl çalışılacağı hakkında konuşacağız. Php programcılarının uzun zamandır veritabanıyla çalışmak için yerel işlevlerin kaderini tartışmasıyla başlayalım: mysql_connect, mysql_query ve diğerleri. Gerçek şu ki, PHP verilerinin gelecek sürümlerinde silinecek, bu işlevler "Eski" olacak. Bu nedenle PHP geliştiricileri diğer araçları veritabanıyla çalışmaya zorlamalıdır.   Şu anda iki alternatif çözüm var; mysqli uzantısı ve PDO'nun genişletilmesi. Bu yazıda PDO'yu tartışacağız. PDO - PHP Veri Nesneleri - çoklu veritabanları ile çalışmak için çok yönlü bir yol sunan bir katmandır. Bu katmanın birkaç avantajı vardır:
  • PDO, MYSQL, Oracle, PostgreSQL ve diğerleri gibi farklı veritabanları ile çalışmanıza izin verir.
  • PDO, hazırlanmış bir ifadeyle çalışmanıza izin verir
Şimdi tüm bunları daha detaylı konuşalım.

PDO Kullanarak Veritabanına Bağlanma

PDO ile çalışmaya başlamadan önce, doğru uzantıya sahip olduğunuzdan emin olmalısınız - php_pdo_mysql.dll. Bu phpinfo () işlevi ile doğrulanabilir. Her şey yolundaysa, gitmekte fayda var.   Öncelikle veritabanına bağlanmamız gerekiyor:  
/ / MuSQL
    $Database = new PDO ("mysql: host = $ host; dbname = $Databasename", $username, $password); 
/ / PostgreSQL
    $Database = new PDO ("pgsql: host = $ host; dbname = $Databasename", $username, $password);
/ / MS SQL
    $Database = new PDO ("mssql: host = $ host; dbname = $Databasename", $username, $password); 
/ / SQLite
    $Database = new PDO ("sqlite: my / database / path / database.db");
Örnekten de görebileceğiniz gibi, her veritabanı bağlantı dizesi birbirinden biraz farklıdır. Birime bağlanmaya çalışırken her zaman try/catch kullanmalısınız, böylece istisnai durumlarda kullanıcıya herhangi bir veri açıklamayız.  
try {
    $Database = new PDO ("mysql: host = $ host; dbname = $Databasename", $username, $password); 
} 
catch (PDOException $ e) { 
    echo "Unable to connect to database"; 
}
PDO'da bağlantıyı kapatmanın özel bir yöntemi yoktur, değişkeni geçersiz kılarak bağlantıyı kapatabiliriz: $Database = null;

PDO ile Sorgular

Şimdi az önce oluşturduğumuz bağlantı için PDO'daki sorgulardan bahsedelim. Üç ana yöntem vardır:

Method $Database-> query Bu yöntem, korunmadığından basit sorgular için kullanılır. Bir hata oluşursa FALSE döndürür.  
$Database-> query ("SELECT * FROM site_info");
$Database-> query ("DELETE FROM site_info");

Method $Database-> exec
Bu yöntem, herhangi bir veri döndürmediğiniz durumlarda kullanılır. Yöntem, etkilenen kayıtların sayısını veya hata durumunda FALSE değerini döndürür.

$Res = $Database-> exec ("DELETE FROM site_info");
$Database-> prepare

Hazırlanan ifadelerden yöntem sorumludur ve kullanılması teşvik edilir.

/ / Anonymous placeholders
$Res = $Database-> prepare ("INSERT INTO users (name, phone, city) values (?,?,?)"); 
/ / Registered placeholders
    $Res = $Database-> prepare ("INSERT INTO users (name, site, software) values (: name,: site,: software)");
Sorguyu hazırladıktan sonra sorgu çalıştırılabilir.   $Res-> execute ($Data) .   "chips" PDO'larından biri, hatırladığınız gibi, sadece kayıtlı yer tutuculardır. onlarla çalışırken daha detaylı bakalım:   Registered placeholders  
$Data = array ();
$Data ['name'] = 'developer resources';
$Data ['site'] = 'ssiddique.info';
$Data ['software'] = 'wordpress';
$Res = $Database-> prepare ("INSERT INTO site_info(name, site, software) values (: name,: site,: software)");
$Res-> execute ($Data);

İsimsiz yer tutucuların kullanımı, kişisel olarak hiç kullanmama rağmen, iyi bir uygulama olarak kabul edilir.

$Data = array ();
$Data ['name'] = 'developer resources';
$Data ['site'] = 'ssiddique.info';
$Data ['software'] = 'wordpress';
$Res = $Database-> prepare ("INSERT INTO site_info(name, site, software) values (?,?,?)");
$Res-> execute ($Data);
Şimdi verilerin nasıl getirileceğini görelim $Res-> fetch - Sonraki satırı çeker ve gerekli biçimde geri döner. $Res-> fetchAll - seçilen tüm satırların bir dizisini döndürür. $Res-> fetchObject - sonraki satırı seçer ve bir nesne olarak döndürür. Yöntem  $Res-> fetchek parametreler alabilir.  
while ($ res = $ res-> fetch ())
{
    echo $ res-> name;
}
#php #sql #mysql #postgresql