Txt Dosyasını Veritabanı Olarak Kullanmak

<?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);
 

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