<?php// Verileri okuyan ve şifresini çözen fonksiyonfunction oku($fileName, $secretKey, $encryptionMethod){$fileContent = file_get_contents($fileName);$fileData = json_decode($fileContent, true);$iv = base64_decode($fileData['iv']);$decryptedData = openssl_decrypt(base64_decode($fileData['data']), $encryptionMethod, $secretKey, 0, $iv);return json_decode($decryptedData, true);}// Verileri yazan ve şifreleyen fonksiyonfunction yaz($fileName, $data, $secretKey, $encryptionMethod){$jsonData = json_encode($data);$ivLength = openssl_cipher_iv_length($encryptionMethod);$iv = openssl_random_pseudo_bytes($ivLength);$encryptedData = openssl_encrypt($jsonData, $encryptionMethod, $secretKey, 0, $iv);$encryptedFileContent = json_encode(['data' => base64_encode($encryptedData),'iv' => base64_encode($iv),]);file_put_contents($fileName, $encryptedFileContent);}//VERİTABANI BAĞLANTI$fileName = 'lisanslar.txt'; // tablo adı$secretKey = "Alp123*_.";$encryptionMethod = "AES-256-CBC";//OKUMA - SELECT$data = oku($fileName, $secretKey, $encryptionMethod);print_r($data);//YAZMA - INSERT$data[] = ["name" => "Alperen", "price" => 1000];writeData($fileName, $data, $secretKey, $encryptionMethod);//SİLME - DELETE$id = 0; //dizi index nounset($data[$id]);$data = array_values($data);writeData($fileName, $data, $secretKey, $encryptionMethod);//GÜNCELLEME - UPDATE$id = 0;//güncellenecek veri id$name= "Mehmet"; //yeni isim$data[$id]['name'] = $name;writeData($fileName, $data, $secretKey, $encryptionMethod);
Etiket: Database
Basit Mysqli Veritabanı Erişim ve Tablolu Çıktı Sınıfı
<?phpclass mysql{var $host;var $kullanici;var $sifre;var $tablo;var $idbaglanti = 0;var $idsorgu = 0;function baglan($sunucu,$kullanici,$sifre,$tablo){$this->host = $sunucu;$this->kullanici = $kullanici;$this->sifre = $sifre;$this->tablo = $tablo;$this->idbaglanti = mysqli_connect($sunucu,$kullanici,$sifre,$this->tablo) or die("MySQL'e baglanılamadı: ".mysqli_error($this->idbaglanti));return $this->idbaglanti;}function sorgu($sorgu){$this->idsorgu = @mysqli_query($this->idbaglanti,$sorgu) or die("Sorgu Çalıştırılamadı");return $this->idsorgu;}function sayi(){return mysqli_num_fields($this->idsorgu);}function alanadi($alan){return mysqli_fetch_field_direct($this->idsorgu,$alan)->name;}function cikti(){echo "<table border=1>\n";echo "<tr>\n";for ($i=0;$i<$this->sayi();$i++){echo "<th>".$this->alanadi($i)."</th>\n";}echo "</tr>\n";while ($satir = mysqli_fetch_row($this->idsorgu)) {echo "<tr>\n";for ($i=0;$i<$this->sayi();$i++){echo "<td>".$satir[$i]."</td>\n";}echo "</tr>\n";}echo "</table>\n";}}$m = new mysql();$m->baglan("localhost","root","","php");$m->sorgu("select id,sayfa,tamam from php limit 2");$m->cikti();?>
Çıktısı
border=1idsayfatamam171231
MyDB ile Mysqli Veritabanı Sorgu ve Hata İzleme
<?phpclass myDB{var $link;function __construct(){$dbserver = "localhost";$dbuser = "root";$dbpass = "";$dbname = "php";$this->link = mysqli_connect($dbserver,$dbuser,$dbpass,$dbname);}function sqli(){$sorgu = func_get_arg(0);if (!$veri = mysqli_query($this->link,$sorgu)){if(func_num_args()>1){$aranan = basename(func_get_arg(1));}else{$aranan = "<i>bilinmeyen</i>";}if(func_num_args()>2){$satir = func_get_arg(2);}else{$satir = "<i>bilinmeyen</i>";}trigger_error("<p style=\"color:#ff0000;\"><b>MYDB-HATA:<br />Sorgu</b> ".$sorgu." <b> hata döndürdü.</b><br />".mysqli_error($this->link)." <br /> ".$aranan." <b>dosyasında satır</b> ".$satir." </p>", E_USER_WARNING);}$dizi = explode(" ",$sorgu);$dizi[0] = strtoupper($dizi[0]);if ($dizi[0]=="SELECT"){$say = mysqli_num_rows($veri);}else{$say = mysql_affected_rows();}return array($veri, $say);}function __destruct(){mysqli_close($this->link);}}$my = new myDB;list($veri, $say) = $my->sqli("SELECT id,sayfa FROM php limit 2",__FILE__,__LINE__);foreach($veri as $a){print_r($a);}?>
Çıktısı
Array([id] => 1[sayfa] => 7)Array([id] => 2[sayfa] => 3)
Hata testi
$my = new myDB;list($veri, $say) = $my->sqli("WHERE SELECT FROM php",__FILE__,__LINE__);foreach($veri as $a){print_r($a);}
Hata Çıktısı
Warning:MYDB-HATA:Sorgu WHERE SELECT FROM php hata döndürdü.You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE SELECT FROM php' at line 1index.php dosyasında satır 40in C:\www\index.php on line 24Warning: Invalid argument supplied for foreach() in C:\www\index.php on line 41
Sql Dosyasındaki Sorguları Alma ve Sıkıştırma
<?phpclass sorguCikarici{private $dosyaAdi;private $icerik;public $sqlSorgulari;public function __construct($dosyaYeri = ''){if(strlen($dosyaYeri) < 1){$this->dosyaAdi = '';}else{$this->dosyaAdi = $dosyaYeri;}}public function sorgulariCikart(){$sql=file($this->dosyaAdi);foreach($sql as $s){$ek=substr($s, 0, 2);if(($ek != "--" and $ek != "/*") AND $s != "\n"){$this->icerik.=$s;}}$this->icerik=trim(preg_replace('/\s\s+/', ' ', $this->icerik));$this->icerik = preg_replace('~[\r\n]+~', '', $this->icerik);file_put_contents($this->dosyaAdi,$this->icerik);return $this->icerik;}}$sc = new sorguCikarici(dirname(__FILE__)."/data.sql");$sc->sorgulariCikart();?>
Örnek data.sql
-- phpMyAdmin SQL Dump-- version 4.1.4-- http://www.phpmyadmin.net---- Anamakine: 127.0.0.1-- Üretim Zamanı: 02 Haz 2018, 00:41:47-- Sunucu sürümü: 5.6.15-log-- PHP Sürümü: 5.4.24SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";SET time_zone = "+00:00";/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;---- Veritabanı: `destek`---- ------------------------------------------------------------ Tablo için tablo yapısı `mesajlar`--CREATE TABLE IF NOT EXISTS `mesajlar` (`mno` int(10) unsigned NOT NULL AUTO_INCREMENT,`kim` int(11) DEFAULT NULL,`zaman` datetime DEFAULT NULL,`ticketid` int(60) DEFAULT NULL,`mesaj` text CHARACTER SET latin5 NOT NULL,`y` int(1) NOT NULL DEFAULT '0',PRIMARY KEY (`mno`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;-- ------------------------------------------------------------ Tablo için tablo yapısı `urunler`--CREATE TABLE IF NOT EXISTS `urunler` (`uno` int(10) unsigned NOT NULL AUTO_INCREMENT,`urun_adi` text CHARACTER SET latin5,`urun_fiyat` int(4) DEFAULT NULL,`urun_kimin` int(4) DEFAULT NULL,`urun_durumu` int(11) DEFAULT '0',`urun_bilgisi` text CHARACTER SET latin5,`urun_aciklama` text CHARACTER SET latin5,`urun_bitistarihi` date DEFAULT NULL,`urun_odemedurumu` int(1) NOT NULL DEFAULT '1',`urun_sipariszamani` datetime NOT NULL,`urun_alistarihi` date DEFAULT NULL,PRIMARY KEY (`uno`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;-- ------------------------------------------------------------ Tablo için tablo yapısı `uyeler`--CREATE TABLE IF NOT EXISTS `uyeler` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`kadi` varchar(15) DEFAULT NULL,`tel` varchar(11) DEFAULT NULL,`sifre` varchar(50) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;---- Tablo döküm verisi `uyeler`--INSERT INTO `uyeler` (`id`, `kadi`, `tel`, `sifre`) VALUES(1, 'admin', '5420', '14e1b6');/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Çıktısı data.sql
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";SET time_zone = "+00:00";CREATE TABLE IF NOT EXISTS `mesajlar` ( `mno` int(10) unsigned NOT NULL AUTO_INCREMENT, `kim` int(11) DEFAULT NULL, `zaman` datetime DEFAULT NULL, `ticketid` int(60) DEFAULT NULL, `mesaj` text CHARACTER SET latin5 NOT NULL, `y` int(1) NOT NULL DEFAULT '0', PRIMARY KEY (`mno`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;CREATE TABLE IF NOT EXISTS `urunler` ( `uno` int(10) unsigned NOT NULL AUTO_INCREMENT, `urun_adi` text CHARACTER SET latin5, `urun_fiyat` int(4) DEFAULT NULL, `urun_kimin` int(4) DEFAULT NULL, `urun_durumu` int(11) DEFAULT '0', `urun_bilgisi` text CHARACTER SET latin5, `urun_aciklama` text CHARACTER SET latin5, `urun_bitistarihi` date DEFAULT NULL, `urun_odemedurumu` int(1) NOT NULL DEFAULT '1', `urun_sipariszamani` datetime NOT NULL, `urun_alistarihi` date DEFAULT NULL, PRIMARY KEY (`uno`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;CREATE TABLE IF NOT EXISTS `uyeler` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `kadi` varchar(15) DEFAULT NULL, `tel` varchar(11) DEFAULT NULL, `sifre` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;INSERT INTO `uyeler` (`id`, `kadi`, `tel`, `sifre`) VALUES(1, 'admin', '5420', '14e1b6');
MSSQL Veritabanı Bağlantı Sınıfı
<?phpclass MSSQL{var $sunucuadi;var $kullaniciadi;var $sifrekelime;var $baglanti;function MSSQL($sunucu="",$kullanici="",$sifre="") {$this->sunucuadi =$sunucu;$this->kullaniciadi =$kullanici;$this->sifrekelime=$sifre;}function baglan() {//php.ini extension=php_sqlsrv_53_nts.dll; çalışıyor olmalıdır.//mssql_pconnect veya sqlsrv_connect()$this->baglanti = mssql_pconnect($this->sunucuadi,$this->kullaniciadi,$this->sifrekelime) or DIE("Sunucu Yanıt Vermiyor");}function bitir() {mssql_close($this->baglanti);}}$mssql=new MSSQL("localhost","ra","");$mssql->baglan();//$mssql->baglanti;$mssql->bitir();?>
Veritabanı Bağlantı Bilgilerini Korumak
<?phpclass db {var $veritabaniadi;var $link;var $hatanumarasi;var $hata;function db() {$sunucu = "localhost";$veritabani = "php";$kullaniciadi = "root";$sifre = "";$this->veritabaniadi = $veritabani;$this->link = mysqli_connect($sunucu,$kullaniciadi,$sifre,$veritabani);$this->hatanumarasi = mysqli_errno($this->link);$this->hata = mysqli_error($this->link);}function veritabaniadi() {return $this->veritabaniadi;}function link(){return $this->link;}function hatanumarasi(){return $this->hatanumarasi;}function hata() {return $this->hata;}}$db=new db();$sorgu=mysqli_query($db->link(),"select * from php limit 1");while($s=mysqli_fetch_array($sorgu)){echo $s["id"]."<br>";echo $db->hata."<br>";echo $db->hatanumarasi."<br>";echo $db->veritabaniadi;}?>
Çıktısı
10php