<?php // Verileri okuyan ve şifresini çözen fonksiyon function 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 fonksiyon function 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 no unset($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ı
<?php class 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ı
<table border=1> <tr> <th>id</th> <th>sayfa</th> <th>tamam</th> </tr> <tr> <td>1</td> <td>7</td> <td>1</td> </tr> <tr> <td>2</td> <td>3</td> <td>1</td> </tr> </table>
MyDB ile Mysqli Veritabanı Sorgu ve Hata İzleme
<?php class 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 1 index.php dosyasında satır 40 in C:\www\index.php on line 24 Warning: Invalid argument supplied for foreach() in C:\www\index.php on line 41
Sql Dosyasındaki Sorguları Alma ve Sıkıştırma
<?php class 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.24 SET 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ı
<?php class 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
<?php class 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ı
1 0 php