PHP ile database servera baglanma ve database islemleri:
db.PHP dosyasi:
<?PHP
class database
{
var $host;
var $dbname;
var $user;
var $password;
var $connection;
var $query;
var $query_no;
var $debug;
function database()
{
$this->host="localhost"; // db host adresi
$this->dbname="DBNAME"; // database adi
$this->user="DBUSER"; // database kullanici adi
$this->password="DBPASSWORD"; // database kullanici sifresi
$this->connection = 0;
$this->query_no = 0;
$this->debug = 0; // 1 yaparsaniz hata mesajlarini hata ile birlikte gosterir. local server da calisiyorsaniz 1 yapin internet uzerinde kesinlikle 0 yapin.
}
function host($hostname)
{
$this->host=$hostname;
}
function dbname($databasename)
{
$this->dbname=$databasename;
}
function user($dbuser,$userpwd)
{
$this->user=$dbuser;
$this->password=$userpwd;
}
function sql_connect()
{
if($this->dbname=="")
$this->error("Unknown Database");
$this->connection=@MySQL_connect($this->host,$this->user,$this->password);
if(!$this->connection)
$this->error("Connection Problem");
if(!@MySQL_select_db($this->dbname,$this->connection))
$this->error("Unknown Database");
}
function sql_close()
{
if($this->connection)
MySQL_close($this->connection);
}
function query($sqlquery)
{
if(!$this->connection)
$this->sql_connect();
$this->query[++$this->query_no]=@MySQL_query($sqlquery,$this->connection);
if(!$this->query[$this->query_no])
$this->error("<br>".$sqlquery.":<br>".MySQL_error());
return $this->query_no;
}
function num_rows($query_no=-1)
{
if($query_no==-1) $query_no=$this->query_no;
if((!$this->connection) || (!$this->query[$query_no]))
$this->error("Unknown Query -sql-num-rows-!!!");
return MySQL_num_rows($this->query[$query_no]);
}
function fetch_array($query_no=-1)
{
if($query_no==-1) $query_no=$this->query_no;
if((!$this->connection) || (!$this->query[$query_no]))
$this->error("Unknown Query -fetch-!!!");
return MySQL_fetch_array($this->query[$query_no]);
}
function insert_id()
{
if((!$this->connection) || (!$this->query[$this->query_no]))
$this->error("Unknown Query -record-!!!");
return MySQL_insert_id();
}
function check($value, $quote="\'") {
if(!$this->connection)
$this->sql_connect();
$value = str_replace("\'","'",$value);
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if(version_compare(PHPversion(),"4.3.0")=="-1") {
$value = MySQL_escape_string($value);
} else {
$value = MySQL_real_escape_string($value);
}
$value = $quote . $value . $quote;
return $value;
}
function error($error_message)
{
if($this->debug == 1)
echo "Fatal Error: ".$error_message;
exit();
}
}
?>
Simdi de nasil kullanacagimiza bakalim.
Oncelik olusturdugumuz bu db.PHP dosyasini kullanacagimiz sayfaya include edelim
include(\'db.PHP\');
Daha sonra class\'imizi tanimlayalim
$db = new database();
Bundan sonra $db degiskenimiz ile database islemlerini kolaylikla gerceklestirebiliriz.
Oncelikle nasil sorgu olusturacagimiza bakalim.
$db->query("SELECT * FROM user WHERE user = ".$db->check($user)." AND password = ".$db->check($password)."");
Her input degeri icin $db->check() kontolunu kullanmaniz database islemlerinde istenmeyen girislerin yapilmasini engeller. Guvenlik acisindan cok onemlu oldugu icin tum veri girislerinde kullanmanizi siddetle tavsiye ederim.
Sorgumuzu gonderdikten sonra simdide verileri cekelim.
$result = $db->fetch_array();Eger birde fazla veri dizisi cekeceksek:
while($result = $db->fetch_array()) { }
Bunun sonucunda size $result degiskeninde database alan isimlerinden olusan bir array - dizi olusacaktir
echo $result[\'user\'];
Eger sorgu sonrasi ne kadar veri bulundugunu kontrol etmek istiyorsaniz.
$totalRow = $db->num_rows();
Guncelleme(Update), Giris(INSERT), ve Silme(DELETE) sorgularini da direkt olarak gonderebiliriz.
$db->query("INSERT INTO user VALUES(".$db->check($user).",".$db->check($password).")");
Eger giris sorgusu sonunda olucan birincil anahtar(primary key) degerini ogrenmek istiyorsaniz.
$userID = $db->insert_id();
Gordugunuz gibi bu class ile database islemleri hem cok basit hem de daha guvenli.









