MongoDB derslerimize devam ediyoruz.Bu derste
php ve
nodejs de veritabanı bağlantısı yapacağız.Veritabanı bağlantısı sağlamak için önceden veritabanı oluşturmanıza gerek yok.Belirtiğiniz veritabanıyla ilgili bir işlem yapıldığında kendisi oluşturur.Şimdi bağlantılara geçelim.
NodeJS ile Veri Tabanı Bağlantısı
Öncelikle kodları yazıp,ardından açıklayacam.
var app = require('express')();
var http = require('http').Server(app);
var MongoClient = require('mongodb').MongoClient;
var ObjectID = require('mongodb').ObjectID;
var port = 3200;
var database;
function connect_mongodb(){
MongoClient.connect("mongodb://127.0.0.1:27017",{server: { socketOptions: {socketTimeoutMS: 0,connectionTimeout: 0 }}}, function(err, db) {
if (err) throw err;
database = db.db("deneme");
SocketConnection();
});
}
connect_mongodb();
function SocketConnection(){
console.log("VeriTabanı Bağlantısı Sağlandı")
}
http.listen(port, function(){
console.log(port+' portu Bağlandı');
});
Öncelikle express,http ve mongodb kütüphanelerini sayfaya dahil ettik.
http.listen ile
3200 portunu dinlemeye başladık.
connect_mongodb() fonksinun içinde MongoClient.connect ile varsayılan mongodb bağlantı portu 27017 bağladık.timeoutlarını sıfır yani süresiz yaptık.
db.db ileveritabanı seçtik.ve
database değişkenine atadık.Bundan sonra tablo çekimlerini bu database üzerinden yapacağız.
SocketConnection() veritabanına bağlandıktan sonra çağırılıyor.İşlemlerimizi bu fonksiyon içinde yapacağız.Temel olarak nodejs bu şekilde
PHP ile Veritabanı Bağlantısı
Php,nodejs oranla bağlantısı daha sade.Aydı şekilde örneği verip,ardından açıklayacağım.
<?php
define("HOST","localhost");
define("PORT","27017");
define("DB","deneme");
$db=null;
try {
$mongo = new MongoClient('mongodb://'.HOST.':'.PORT);
$db = $mongo->selectDB(DB);
echo "Veri Tabanı Bağlantısı Başarıyla Yapıldı.";
} catch (MongoConnectionException $e) {
die('Hata : ' . $e->getMessage());
}
?>
define ile sabit değişkenlerime,bağlantı verilerini yazdım.Ardından try-catch yapısı içinde bağlantıyı yazdım.Her hangi bir hata durumunda catch içine düşecektir.
new MongoClient ile bağlantımızı yaptık.Gene varsayılan localhost 27017 portuna bağlandık.
selectDB ile veritabanımızı seçip database adlı değişkenimize atadık.Bundan sonra phpde de tablo çekim işlemlerimizi database değişkeni üzerinden yapacağız.