Gökalp Kuşçu

Mezun olduuuuu :)

Php’de tüm tablolar için ortak insert function

with 5 comments

Merhaba arkadaşlar bugünlerde bir kod kafama çok takıldı, oluşturduğum her tabloya bilgi girişi yapacağım ve bunları her tablom için ayrı ayrı insert komutu yazacağıma güzel bir function yazıp, bu functiona da sadece table ismini ve verilerimi dizi şeklinde gönderip insert ettirmek çok mantıklı geldi.

İlk olarak colonlarımı çekmeliydim sonra ise verilerimi alıp, bildiğimiz insert syntax ına dönüştürüp, query olarak işlemeliydi.

http://tr.php.net bu konuda çok yardımcı oldu ve şöyle bir kod yazdım…

Bu kod içinde bilmemiz gerekn bir kaç yapı var ilk önce onlardan bahsedeyim.

array_map() : Bu function bize dizimizi, geri döndük bir function içinde işletmemizi sağlıyor nasıl mı ?

$a = array(1, 2, 3, 4, 5);
$b = array_map(“cube”, $a);

Burdaki cube ifadesi bir function şöyleki :

function cube($sayi)
{
return $sayi*$sayi*$sayi
}

array_map ilk önce bu dizi elemanlarımızı, functiona gönderiyor dönen sonucu aynen geri dizideki yerine yazıyor.

OUT: $b = (1,8,27,64,125 );

Bunu nerede kullanacağız derseniz,” mysql_escape_string ” function için.

İkinci olarak bilmemiz gereken:

array_combine : Bunu buradaki yazıdan öğrenebilirsiniz, Buradaki yazımda

Evet gerekli olan functionlarımızı öğrendik geriye PHP yeteneğimiz kaldı.

Benim database sınıfım içinden alınmış bir fonksiyon, yapmanız gereken tek şey fonksiyona, table adını ve değerlerinizi göndermeniz burada önemli olan diğer bir noktada gelen veri dizi ile ben mysql’deki colonları combine ettim yani gönderdiğiniz, veri sırasını colon sırası ile aynı yapmalısınız.


public function insert_data($table,$value = array()){
   try{
     $qColumnNames = $this->query(" SHOW COLUMNS FROM $table ") or die("gok");
      $numColumns = $this->database_num_rows($qColumnNames) or die("gok");
        $x = 0;
          while ($x < $numColumns)
          {
           $colname = mysql_fetch_row($qColumnNames) or die("gok");
           $col[$x] = $colname[0];
           $x++;
          }
           $value = array_combine($col, $value);
          $sql =  sprintf('INSERT INTO %s (%s) VALUES ("%s")', $table,
                implode(', ', array_map('mysql_escape_string', array_keys($value))),
                  implode('", "',array_map('mysql_escape_string', $value)));

            echo $sql;
        }
      catch (exception $e){
      die("{$e->getMessage()}");
    }
 }

//OUT: INSERT INTO haber (id, title) VALUES ("1", "gokalp")

İşi biraz daha abartacağım sanırım aynı anda farklı tablolara insert çektirmek gibi güzel bir function olucak hızı nasıl etkiler tahmin edemiyorum test etmek gerek :)

5 Responses to 'Php’de tüm tablolar için ortak insert function'

Subscribe to comments with RSS or TrackBack to 'Php’de tüm tablolar için ortak insert function'.

  1. kanka yine dellenmişssin sanırım :D

    yücel

    20 Oca 10 at

  2. anladigim kadariyla tablo ismini verince ilgili kolonlari bulup her birine istedigin verileri ekliyor yanilmiyorum degil mi gokalp?

    hc0de

    5 Şub 10 at

  3. evet aynen öyle çalışıyor :)

    Gökalp Kuşçu

    10 Şub 10 at

  4. array_map benim aşık oldugum bir fonksiyon gercekten cok seviyorum onu :)

    0xyGen

    12 Şub 10 at

  5. Çok Güzel Bir teknik Saol

    murat

    17 Şub 10 at

bir yorum yaz:

java oracle sorgu yazılım donanım grubu apple pardus transformers 2 Items.CopyTo gump öss 2009 soruları ve cevapları ttnet 8 MB OS billions of pages in google OOP hlds b0f çin soykırımı hlds buffer overflow java.net bilgisayar kulubü java.lang Transformers 2: Yenilenlerin İntikamı öss 2009 soruları grup php nesne gökalp kuşçu doğum günü nothing else matters Java Enterprise tom hanks kpss 2009 phpTürkçe karakter sorunu kibo CopyTo() pardus download Java Staj java oracle bağlantısı Endeavour iphone etiket yapımı javadoc string path java.io loreena Java ben php ile tag java.awt.event open source university Cyberplatform.net php mysql ttnet statik ip ttnet tarife ttnet dhcp C# Richard Dean Anderson php ile tag sistemi yapımı php veri tabanı javafoc maven plugin PHP Cyberplatform forrest gump 1994 javax.swing.event steve Jops site update php 3 katmanlı mimari System.IO.File.WriteAllLines kpss öss 2009 cevapları transformers pardus rc2 pardus 2009 php quiz öss wamp No listening sockets Macgyver bilgi metallica nothing else matters etiket Macgyver 1982 Lee David Zlotoff 8 megabit gökalp site güncelleme osum string content[] lider olma net limitsiz tarife staj başladı hanks php interface php quiz sonucu Onur maven goals java ve oracle saubm.com php türkçe karakter metallica dinle php class oracle sorgu dinle proje liderlik LOREENA MCKENNITT - ALL SOULS NIGHT izle metallica izle sunucu update Mysql shutting down for Apache Chrome OS LOREENA MCKENNITT - ALL SOULS NIGHT dinle oracle half life dedicated server buffer overflow nesneye dayalı php mysql drop table google operating system LOREENA MCKENNITT - ALL SOULS NIGHT javadoc:aggregate metallica int arrayIndex forrest Onur Aktaş loreena mckenitt Türk steve soykırım half life buffer overflow Transformers 2: Revenge Of The Fallen maven 2 javadoc:javadoc java oracle connection string jenny php ile etiket yapımı hüseyin kara öss 2009 google chrome OS forrest gump Gary Serda php nesneye dayalı programla oscar object destination import java.sql.* repository mave string[] write to txt with c# staj b0f takım arkadaşı 6 oscar php object oriented programlama buffer over flow php drop table java ile oracle sorgu çekme PHP OOP statik ip java.text google php mysql drop table WriteAllLines() web etiket java.util php etiket uzay mekiği dedicated server buffer overflow web tag maven plugin koder muhabbet kişisel proje yazılım grubu Gökalp Kuşçu No listening sockets coding muhabbeti php parent Macgyver info google OS kpss 2009 yorumu php türkçe karakter Converter google Chrome Shia LaBeouf saubm uygur Türkleri çin uygur devleti soykırımı Cyberplatform.org toyota Endeavour uzay mekiği array_combine() tag me google php veri tabanı bağlantısı projec men gökalp koca adam olmuş php ile veri tabanından veri çekme apache Kişisel Mevzu Liderliğin on emri pardus 2009 download Macgyver php tr converter php nesneye dayalı programlama kpss sınavı import oracle.jdbc.pool.OracleDataSource hüs linux pardus javax.swing dhcp toyota staj gökalp