• 02-12-2007, 18:08:18
    #1
    Merhaba Arkadaşlar Excel'den MYsql E 2000 tane adres atmam lzm elle yazmamak için bi kod buldum kodlar aşagıda Fakat Atmayı Deneyine bana


    Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `excel.application': Geçersiz sözdizimi ' in c:\Inetpub\wwwroot\bayi.php:14 Stack trace: #0 c:\Inetpub\wwwroot\bayi.php(14): com->com('excel.applicati...') #1 {main} thrown in c:\Inetpub\wwwroot\bayi.php on line 14

    yukardkai hatayu verior yardımlarınız için şimdiden teşekkürler.

    <?
    /*
    Disaridan URL içerisinde veya baska sekilde
    degiskenlerimiz degistirilmesin diye
    veritabanina baglanirken kullanacagimiz
    degiskenleri sabit olarak tanimliyoruz.
    */
    //local
    $dbhostname ="localhost";
    $dbusername="root";
    $dbpassword="123456";
    $dbname = "bayiler";
    /* Excel adinda bir obje olusturuyoruz. */
    $excel = new COM("excel.application"); 
    /* Eger açilacak Excel dosyasinda bulunan
    veri büyükse hata dönmesin diye
    max_execution_time'i sadece bu oturum için
    120 olarak degistiriyoruz. */
    ini_set('max_execution_time','120');
    /* Excel dosyasinin isletim sisteminde
    açilmasini engellemek
    için visible degerini sifir olarak atiyoruz. */
    $excel -> Visible = 0;
    /* Excel tarafindan olusacak bir hatanin
    kullaniciya görüntülenmemesini istiyoruz. */
    $excel -> DisplayAlerts = 0;
    /* userlist.xls dosyasini açip çalisacagimiz
    worksheet'i belirliyoruz. */
    $data = $excel -> Workbooks -> Open
    ("C:\bayiler.xls");
    $Sheets = $data -> Worksheets(1);
    /* Cells isimli fonksiyona ilk
    parametresinde hangi satiri,
    ikincisinde ise hangi sütunu okuyacagini
    döngülerle atiyoruz. */
    for($i = 3; $i <= 5; $i++){
    for($x = 1; $x <= 3; $x++){
    $Cell = $Sheets -> Cells($i, $x);
    $Cell -> activate;
    switch($x){
    case 3; $Cariisim = $Cell -> value; break;
    case 4; $Adres = $Cell -> value; break;
    case 7; $Telefon = $Cell -> value; break;
    }
    }
    /* En basta mysql'e baglanip ilgili
    veritabanini seçmistik.
    Simdi ise members tablosuna excelden
    aldigimiz kullanici bilgilerini giriyoruz. */
    $SQL = mysql_query("INSERT INTO
    bayiler VALUES(NULL, '$Cariisim', '$Adres',
    '$Telefon')");
    }
    /* Excel'i kapatiyoruz... */
    $excel -> Quit();
    ?>
  • 02-12-2007, 19:11:27
    #2
    arkadaslar bi dost tavvsiyesi üzerine dataları txt e kaydettim aşşagıdaki gibi bir sorgu oluşturdum.

    <?
    $ac=fopen("cariisim.txt","r");
    mysql_connect("localhost","root","123456");
    mysql_select_db("bayiler");
    while(!feof($ac))
    {
    $al=fgets($ac,1024);
    $sorgu = "INSERT INTO bayiler";
    $sorgu .= "(Cariisim)";
    $sorgu .= " VALUES ";
    $sorgu .= "('$al')";
    mysql_query($sorgu) or die(mysql_error());    
    }
    echo "Eklendi";
    ?>
    fakat şimdide

    Data too long for column 'Cariisim' at row 1 bu hatayı verior
  • 02-12-2007, 19:13:29
    #3
    c:\Inetpub\wwwroot

    iis kullanmak zorundamisiniz ?
  • 02-12-2007, 19:20:30
    #4
    iis le bir alakası yok sorunu çözdüm gibi ama sizinde yardımcı olcanızı sanıyorum

    adresler yerine telefon.txt e telefonları ekledim ve telefon die kolon açtım mysqlde aynı kodlamayla gönderdiğimde ekledi sorun şuki snrsam türkce karakterleri almıor ama ben latin5 turkish seçtim sadece deneme yazıyorum alıyor ama Şirket yazınca almıyor bu olayı nsl aşarım orası kaldı şimdiden teşekkürler