GithubHelp home page GithubHelp logo

tayfunerbilen / basicdb Goto Github PK

View Code? Open in Web Editor NEW
156.0 33.0 81.0 411 KB

PDO ile geliştirilmiş kullanımı kolay veritabanı sınıfıdır.

Home Page: http://www.erbilen.net/

License: Creative Commons Zero v1.0 Universal

PHP 100.00%
pdo php mysql

basicdb's Introduction

~ whoami

just another guy who likes to code

~ explain tayfunerbilen

half-time musician, full-time developer, some-time normal person

~ links

for my delicious education videos -> https://youtube.com/prototurkcom

for more information about me -> https://tayfun.net

basicdb's People

Contributors

midorikocak avatar mrfade avatar tayfunerbilen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

basicdb's Issues

Toplamı alırken oluşan error

[12-Dec-2018 18:44:04 UTC] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1' in /home/autopasp/public_html/test/app/classes/class.basicdb.php:386 Stack trace: #0 /home/autopasp/public_html/test/app/classes/class.basicdb.php(386): PDO->query('SELECT SUM(Puan...') #1 /home/autopasp/public_html/test/app/view/seviye.php(38): BasicDB->total() #2 /home/autopasp/public_html/test/app/controller/seviye.php(3): require('/home/autopasp/...') #3 /home/autopasp/public_html/test/index.php(15): require('/home/autopasp/...') #4 {main} thrown in /home/autopasp/public_html/test/app/classes/class.basicdb.php on line 386

lef_join, right_join, run methodu basicdb sınıfı içinde bulunamadı

Merhabalar, kolaylık olması açısından sizin basicdb sınıfını kullanıyorum ancak all.php içerisinde vermiş olduğunuz örnekler de olduğu gibi left_join right_join aralarında alt tre olmadan kullanılıyor ayrıca bu fonksiyonları run(); ile çalıştıramadım ve maalesef bu işte o kadar iyi olmadığımdan hangi kod ile çalıştırabilirim anlamadım. run(); kullandığımda run komutu basicdb sınıfı içerisinde bulunamadı hataı almaktayım. Bu fonksiyonları nasıl kullanabilirim teşekkürler.

PDO İşlemleri

getMessage(); } / SELECT İŞLEMİ ÖRNEK 1 $sorgu = $db->prepare('SELECT * FROM musteriler'); $sorgu->execute(); $sorgular = $sorgu->fetchAll(PDO::FETCH_ASSOC); foreach ($sorgular as $row) { $musteri_ad = $row["musteri_ad"]; echo $musteri_ad; echo '
'; } echo '
'; // SELECT İŞLEMİ ÖRNEK 2 $sorgu = $db->prepare('SELECT * FROM musteriler'); $sorgu->execute(); while($row = $sorgu->fetch(PDO::FETCH_ASSOC)){ $musteri_ad = $row["musteri_ad"]; echo $musteri_ad; echo '
'; } ?>

SQLSTATE[42000]: Hatası

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

hatasını alıyorum.

Insert ederken hata.

Merhabalar bir kaç gündür bu classı sorunsuz kullanıyodum bu gün fakat bir sorunla karşılaştım 1-2 saat uğraştım ama sorunu bir türlü anlayamadım

          foreach($defindexes as $defindex) {
             $prepare = array(
               'defindex'    => $defindex,
               'quality'     => $quality,
               'effect'      => $effect,
               'value'       => $stats['value'],
               'last_change' => $stats['difference'], // Last price change
               'last_update' => $stats['last_update'],
               'currency'    => $stats['currency'],
               'value_raw'   => $stats['value_raw'],
               'tradable'    => $tradable, // Tradable/Non-Tradable
               'craftable'   => $craftable // Craftable/Non-Craftable
             );
             var_dump($prepare);
                              echo "</br>";
             $query = $db->insert('bp-prices')
                         ->set($prepare);
             echo $db->getSqlString();
             echo "</br>";
             echo $query;
           }

Böyle bir kullanımda aldığım çıktının bir kısmı şöyle
array(10) { ["defindex"]=> int(524) ["quality"]=> int(0) ["effect"]=> int(0) ["value"]=> int(239) ["last_change"]=> int(0) ["last_update"]=> int(1377063243) ["currency"]=> string(4) "keys" ["value_raw"]=> float(6945.5) ["tradable"]=> string(8) "Tradable" ["craftable"]=> string(9) "Craftable" }

INSERT INTO bp-prices SET defindex = ? , quality = ? , effect = ? , value = ? , last_change = ? , last_update = ? , currency = ? , value_raw = ? , tradable = ? , craftable = ?

array(10) { ["defindex"]=> int(524) ["quality"]=> int(1) ["effect"]=> int(0) ["value"]=> float(10.88) ["last_change"]=> float(0.77) ["last_update"]=> int(1487766088) ["currency"]=> string(5) "metal" ["value_raw"]=> float(10.88) ["tradable"]=> string(8) "Tradable" ["craftable"]=> string(9) "Craftable" }
INSERT INTO bp-prices SET defindex = ? , quality = ? , effect = ? , value = ? , last_change = ? , last_update = ? , currency = ? , value_raw = ? , tradable = ? , craftable = ?

array(10) { ["defindex"]=> int(524) ["quality"]=> int(6) ["effect"]=> int(0) ["value"]=> float(1.44) ["last_change"]=> float(-0.11) ["last_update"]=> int(1493150693) ["currency"]=> string(5) "metal" ["value_raw"]=> float(1.44) ["tradable"]=> string(8) "Tradable" ["craftable"]=> string(9) "Craftable" }

INSERT INTO bp-prices SET defindex = ? , quality = ? , effect = ? , value = ? , last_change = ? , last_update = ? , currency = ? , value_raw = ? , tradable = ? , craftable = ?

array(10) { ["defindex"]=> int(524) ["quality"]=> int(6) ["effect"]=> int(0) ["value"]=> int(2) ["last_change"]=> float(0.67) ["last_update"]=> int(1475429304) ["currency"]=> string(5) "metal" ["value_raw"]=> int(2) ["tradable"]=> string(8) "Tradable" ["craftable"]=> string(13) "Non-Craftable" }

INSERT INTO bp-prices SET defindex = ? , quality = ? , effect = ? , value = ? , last_change = ? , last_update = ? , currency = ? , value_raw = ? , tradable = ? , craftable = ?

Edit:Pdo'dan ayarları aktif edince gördümkü sorun table ismindeki '-' den kaynaklanıyormuş onu değiştirdim ve sorunu çözdüm.Bu arada queryi tamamlayan execute komutu olduğu için queryi tam olarak göremiyoruz aklınızda bulunsun.

Fatal Error

merhaba.
WampServer 2.4 - Windows 64 Bits Apache : 2.4.4 MySQL : 5.6.12 PHP : 5.4.12 PHPMyAdmin : 4.0.4
kullanmaktayım.
Fatal error: Class 'BasicDB' not found in D:\wamp\www\pdo\insert_example.php on line 7
hatası almaktayım.
7. satrda ise.
$db = new BasicDB('localhost', 'pdo', 'root', '');
bağlantı satırı var ve class bulunamadı hatası veriyor.

Update sorunu

Tayfun kardeşim update ederken kolon = kolon+1 yapınca değeri sıfır döndürüyor.
Kullandığım kod ise böyle
$connect -> update('nw_test') -> where('ID', $_POST['Test']) -> set(['Counter' => 'Counter + 1']);

Bu sorguyu basicdb ile nasıl kullanabiliriz?

SELECT abc.id,abc.kanalid,abc.videoid,abc.videobaslik FROM yuklenecekler as abc WHERE yuklenmedurumu = 4 AND DATE_FORMAT(yuklenecektarih, '%d-%m-%Y %H:%i:%s') < DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s') AND (SELECT COUNT(*) FROM yuklenecekler as bbc WHERE bbc.yuklenmedurumu = 7 AND bbc.kanalid = abc.kanalid)<5 ORDER BY DATE_FORMAT(yuklenecektarih, '%d-%m-%Y %H:%i:%s') ASC,RAND() LIMIT 1

basicdb ile kullanmaya kalktığımız zaman bu sorguyu nasıl çalıştıracağız ? @tayfunerbilen

örneğin as abc yapmışım fakat projenizde as ile alakalı bir fonksiyon göremedim.Bu tarz sorgularda kullanabilmek mümkün müdür acaba?

Teşekkürler

Where = fonksiyon , diyebilmek?

$arr = $db->from("availability")
    ->select("availability_title")
    ->where("availability_date1","current_date()")
    ->all();

Burda availability_date1 sütunu bugüne eşit olanları çekmek istiyorum . Fakat fonksiyon kullandığım için string olarak alıyor heralde.

where availability_date1='current_date()' şekline çeviriyor.
where availability_date1=current_date() bu ise benim isteğim. Tekrar dökümanlara bakıcam ama bulamamıştım.

basicdb Hatası: SQLSTATE[42000]

Cpanelde mysql sürüm güncellemesi olduğunda beridir groupby('alt_kat_adi') şeklidenki sorgularım patladı, çalışmıyor ve cpaneldede buna müdahale edemiyorum, nasıl bir çözüm bulabilirim bu soruna?

basicdb Hatası:
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'yalcinya_yeni1.ykategoriler.kat_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

basicdb Hatası

SQLSTATE[42000]: Syntax error or access violation: 1064 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 '.login, account.password = ?.password, account.social_id = ?.social_id, account.' at line 1

INSERT INTO account.account SET account.login = :account.login, account.password = :account.password, account.social_id = :account.social_id, account.email = :account.email, account.web_ip = :account.web_ip, account.status = :account.status, account.create_time = :account.create_time

https://i.hizliresim.com/oXbJJb.jpg

@tayfunerbilen

GROUP BY Hatası

SELECT * FROM itemproto GROUP BY icon LIMIT 0, 25
MySQL said: Documentation

#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'metin2_wiki_special.itemproto.protoID' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

MAMP da oluşuyor nedense

Çözümü > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

Sql İnjection işlemlerinin önüne geçilmeli

Where methoduyla $where değişkeni içerisine depolanan verileri sorgulama sırasında string olarak işlediğiniz için(BKNZ) maalesef SQL Injection saldırılarından kaçamıyorsunuz 😒

Daha evvel kullandığım projenin verilerinin çekilebileceğini öğrendiğim zaman inceleme gereği duydum ve maalesef böyle bir şey ile karşılaştım. Sql çekme denemesini kendi projem üzerinde SqlMap betiği ile gerçekleştirdim.

Çözüm önerisi:
quote fonksiyonu ile gelen stringleri escape edebilir veyahut $string = str_replace("'","\'",$string); yöntemiyle gerekli gördüğünüz stringleri temizleyerek bu açıktan sıyrılabilirsiniz.

İyi eğlenceler!

Join kullanımı , Çakışan sütunları ayırmak.

Selamlar , join kullanımında iki tableda aynı columnlar var..

  • urunler_table ( 'id', 'ad' ,'kategori', 'resim' )
  • kategori_table ('id' , 'ad', 'resim')

$sorgu = $db->from('urunler')
->join('kategori', '%s.id = %s.kategori','left')
->all();

Bu sorguda sadece kategori table 'daki 'ad' sütünunu almak istiyorum (farklı bir isimde) , nasıl yapabilirim..
şuan birbirini eziyor veriler.
Kısacası join birleştirmede table' sütunlarına nasıl farklı bir isim verebilirim ?

Teşekkürler.

Fatal error: Class 'BasicDB' not found in

// class file
require 'BasicDB.php';

// connection
$db = new BasicDB('localhost', 'bgg-arge', 'root', '');

// select
$query = $db->from('user')
            ->orderby('id')
            ->limit(0, 10)
            ->all();
   
if ( $query ){
  foreach ( $query as $row ){
    print_r($row);
  }
}

SELECT DISTINCT * FROM kullanımı hakkında

Merhaba Tayfun,
aşağıdaki sorgulamayı bu kütüphaneyi kullanarak nasıl yapabilirim?

SELECT DISTINCT siparis_no, ekleme_zamani FROM yedek_parca WHERE ekleme_zamani BETWEEN '2023-02-17' AND '2023-02-17'

SQLSTATE [42000]

Syntax error or access violation: 1064 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 user_email = "asdwqd" && user_password = "78bab1e8d67082c17c93bd55874c9180' at line 1

Verdiği hata çıktısı bu kodlarım ise

    $row = $db->select('user')
        ->where('user_email', $username)
        ->where('user_password', $password)
        ->where('user_rank', 1)
        ->all(true);

Fatal error line 111

php error logdan baktımda bağlantı hatası veriyor. PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Hedef makine etkin olarak reddetti. ama sorun olmaması gerekiyor. bende anlamadım. hostta çalışıyor

->in ('tablo', [$value]) komutunda implode veri okumaması

$ram_filter = implode("','", $_POST["ram"]);
$gg= $db->in('sektor', [$ram_filter]);

gibi bir dizilimle ajax verisi gönderiyorum, verileri güzel bir şekilde okuyor çalışıyor tek sıkıntı [$ram_filter] kısmındaki çoklu veriyi okumuyor, elle yazınca okuyor benim value değerimde mi problem var yoksa farklı bir şekilde yazmam mı gerekiyor?

["$ram_filter"], ['$ram_filter'], $ram_filter gibi değişken ve kombinasyonları denedim.
ama sıralı virgüllü gelen 1,2,3,4 değerini toplu bir şekilde okutamadım.
gelen değerden sadece baştakini okuyor.

Teşekkürler

Çoklu tablo

Myslq'de "SELECT * FROM player.player" diye kullandığımız komutu burada nasıl kullanacağız? Ek olarak bağlantı sırasında veritabanı adı zorunlu kılınmış. Bunu nasıl engelleyip bu tarz bir sorgu kullanacağız? Kısacası tek veritabanı yerine birden çok veritabanına nasıl bağlanacağız?

OrderBy Rand() Nasıl kullanabiliriz ?

Merhabalar , kısaca sorguda ;
->orderBy ('id' , rand() ) , şeklinde kullanmak istiyorum , sadece sort 'ASC' , 'DESC' ile kullanabiliyoruz.

Verileri nasıl random çekebiliriz ?

Fatal error

Merhaba, aşağıdaki kullanım ve aldığım hata mevcuttur.Çift where kullanıyorum,
`ob_start();
require 'BasicDB.php';
$db = new BasicDB('localhost', 'pdo', 'root', '');

if (isset($_POST['giris'])) {
$kadi=$_POST['kadi'];
$sifre=md5($_POST['sifre']);

$query = $db->from('users')
        ->where('kadi', $kadi)
        ->where('sifre', $sifre)
        ->run();  

if ( $query ){
foreach ( $query as $row ){
print_r($row);
}
}
}
`
Fatal error: Call to a member function fetchAll() on boolean in D:\wamp64\www\pdo\BasicDB.php on line 242

Ayrıca
->where('kadi', $kadi, '=')
->where('sifre', $sifre, '=')
bu şekilde de denedim sonuç yine aynı.

Fatal error

my code:

<?

    require 'BasicDB.php';

    $db = new BasicDB('localhost', 'milli', 'root', 'root');

    $product = $db->from('product_images')
        ->where('source', 'jmaetrWYt3JK.jpg')
        ->first();

    echo '<pre>';
    
        print_r($product);

    echo '</pre>';

the error

Fatal error: Uncaught Error: Call to a member function fetch() on boolean in /Users/kakajann/www/milli/BasicDB.php:261 Stack trace: #0 /Users/Kakajann/www/milli/test.php(9): BasicDB->first() #1 {main} thrown in /Users/kakajann/www/milli/BasicDB.php on line 261

database

database screenshot

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.