• 16-11-2012, 19:02:26
    #1
    Php ile mysql Veritabanını nasıl dump edebilir ve execute edebilirim? böyle bişey mumkunmu?
  • 16-11-2012, 19:44:08
    #2
    nekrofil adlı üyeden alıntı: mesajı görüntüle
    Php ile mysql Veritabanını nasıl dump edebilir ve execute edebilirim? böyle bişey mumkunmu?

    php de mysql_connect fonksiyonu var. Bu fonksiyon ile mysql veritabanına bağlanabilir, ardından mysql_select_db ile veritabanını seçebilirsiniz. Sonrasında sorgularınızı tek tek yaparak işleyebilirsiniz.
  • 16-11-2012, 19:49:02
    #3
    miscel adlı üyeden alıntı: mesajı görüntüle
    php de mysql_connect fonksiyonu var. Bu fonksiyon ile mysql veritabanına bağlanabilir, ardından mysql_select_db ile veritabanını seçebilirsiniz. Sonrasında sorgularınızı tek tek yaparak işleyebilirsiniz.
    hocam peki mevcut veritabanımı dump etmem mümkünmü mümkünse neyle edebilirim?
  • 16-11-2012, 20:25:12
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    eğer ingilizceniz varsa ;
    cevabı stackoverflow'da verilmiştir. -> http://stackoverflow.com/questions/6...e-a-mysql-dump
  • 16-11-2012, 20:28:28
    #5
    $sql = mysql_query("SHOW TABLES FROM `database_name`"); veritabanındaki tüm tabloları gösterir.

    result ile aldığın tüm tablolardaki kolonları istediğimiz gibi çekeceksek eğer...
    $sql = mysql_query("SHOW COLUMNS FROM `table_name`");
    sorgunun sonucunda tüm kolonlar gösterilir biz de seçim yapabiliriz.

    ancak buna alternatif;

    SELECT * FROM `table_name`; ile gelen sorgudaki kolon isimlerini de kullanabilirsin.

    ve dönen herşey tekrar bir döngüye girer. Temiz yedekleme için her bir satırın başına INSERT INTO koyarız.

    INSERT INTO `table_name` (...) VALUES (...),(...),(...),(...),(...);
    yukarıdaki sorgu ile bir defada 5 veri girebilirken,
    INSERT INTO `table_name` (...) VALUES (...);
    sorgusuyla bir defada sadece 1 veri girilebilir.

    Böyle özeliklerini de kullanarak sanıyorum yedek dosyanda yer kazanabilirsin.
  • 16-11-2012, 21:01:06
    #6
    miscel adlı üyeden alıntı: mesajı görüntüle
    $sql = mysql_query("SHOW TABLES FROM `database_name`"); veritabanındaki tüm tabloları gösterir.

    result ile aldığın tüm tablolardaki kolonları istediğimiz gibi çekeceksek eğer...
    $sql = mysql_query("SHOW COLUMNS FROM `table_name`");
    sorgunun sonucunda tüm kolonlar gösterilir biz de seçim yapabiliriz.

    ancak buna alternatif;

    SELECT * FROM `table_name`; ile gelen sorgudaki kolon isimlerini de kullanabilirsin.

    ve dönen herşey tekrar bir döngüye girer. Temiz yedekleme için her bir satırın başına INSERT INTO koyarız.

    INSERT INTO `table_name` (...) VALUES (...),(...),(...),(...),(...);
    yukarıdaki sorgu ile bir defada 5 veri girebilirken,
    INSERT INTO `table_name` (...) VALUES (...);
    sorgusuyla bir defada sadece 1 veri girilebilir.

    Böyle özeliklerini de kullanarak sanıyorum yedek dosyanda yer kazanabilirsin.


    Teşekkürler hocam Tam olarak yardımcı olmuşsun.bide son olarak bir sorum olacak formdan gelen verileri veritabanına kayıt işlemleri sırasında tek tırnak ve çift tırnaklar'da problemler yaşıyorum.

    Şöyleki biraz araştırdıktan sonra mysql_real_escape_string(); böyle bi fonksiyon buldum fakat bu sorunumu kısmi olarak çözdü tek tırnaklardaki sıkıntı çözüldü fakat textboxlardan gelen degerleri varchar bi alana eklemeye çalıştığımda çift tırnaklarda sıkıntı oluyor . bunun sebebi ne olabilir ? Ve Bu sorunu kökten çözcek bi function varmı?
  • 16-11-2012, 21:02:52
    #7
    addslashes fonksiyonu işinizi görür. Ya da replace fonksiyonları ile bu karakterleri etkisiz hale getirirsiniz(escape).

    Yani str_replace('"', '\"', $str); gibi
  • 16-11-2012, 21:08:38
    #8
    miscel adlı üyeden alıntı: mesajı görüntüle
    addslashes fonksiyonu işinizi görür. Ya da replace fonksiyonları ile bu karakterleri etkisiz hale getirirsiniz(escape).

    Yani str_replace('"', '\"', $str); gibi
    Tekrar teşekkürler hocam son olarak
    addslashes() ile mysql_real_escape_string() bu fonksiyon arasındaki fark nedir?
  • 16-11-2012, 21:24:10
    #9
    $degisken1=" 'falan' ";
    $degisken2=' "filan" ';

    $sql="update tableadi set degiskenler='".addslashes(eregi_replace("'",'"'($d egisken1.$degisken2)))."'";

    eregi_replace ile gelen çift tırnakları " tek tırnağa ' çevirirsin
    tek tırnakların önüne de adslashes ile \' koymuş olursun.
    çünkü sorgudaki degiskenler='' field alanı char olduğundan tek tırnakla açıp kapatıyorsun