Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: odb

MtJ [12.08.2004 17:49:33]

#

Edellinen koodivinkkini käsitteli excelistä hakemista, eli SELECT-lauseen suorittamista odbc-yhteyden kautta. Voit katsoa kyseisen vinkin tästä:
https://www.ohjelmointiputka.net/koodivinkit/24461-php-odbc-excel-tietokanta

Uusin koodivinkki käsittelee excel-tiedostoon kirjoittamista käyttäen samanlaista odbc-yhteysstringiä + excel-tiedostoa. Huomattavaa kirjoittamisessakin on, että sarakkeille on annettava itse nimet - eli ensimmäiselle riville on sisällytettävä sarakenimet. Lisäksi taulun (sheet) nimen perään on sql-lauseissa laitettava merkki $.

Nyt koodi:

<?php

// Käyttäjänimi + pwd=salasana (valinnaiset)
$UserName = "";
$PWD = "";

// yhdistettävän excel-tiedoston nimi (laita polku eteen jos ei sijaitse oletushakemistossa, kts. oletushakemisto DSN-stringistä)
$TPideFile = "TiedostoNimi.xls";

// DSN-string, yhdistää odbc:n kautta xls-tiedostoon
// Huomioi erona SELECT-lauseen suoritukseen ReadOnly=0;
$DSN = "DRIVER={Microsoft Excel Driver (*.xls)};
       DBQ=".$TPideFile.";UserCommitSync=Yes;
       Threads=3;
       SafeTransactions=0;
       PageTimeout=5;
       MaxScanRows=8;
       ReadOnly=0;
       MaxBufferSize=2048;
       DriverId=281;
       DefaultDir=C:\Ohjelmatiedostot\Apache Group\Apache\htdocs";

// Yhteys tiedostoon avataan
$Conn = @odbc_connect($DSN, $UserName, $PWD);

// Taulun nimi (Sheet name)
$TauluNimi = "Taul1";

// Arvot jotka sijoitetaan uuteen tiedostoon (nämähän voidaan hakea mistä tahansa, esimerkiksi formista)
$Arvo1 = "Tulee sarakkeeseen A";
$Arvo2 = "Tulee sarakkeeseen B";
$Arvo3 = "Tulee sarakkeeseen C";

// Varsinainen sql-lause, kts. muuttujien arvot edellä
// Tässä tiedostoon on kirjoitettu 1. riville kirjaimet a,b,c (eli sarakkeille nimet)
$sql = "INSERT INTO [".$TauluNimi."$] (A,B,C) VALUES
('".$Arvo1."','".$Arvo2."','".$Arvo3."')";

// Suoritetaan insert-lause $Conn-yhteyden kautta
if ($res=odbc_exec($Conn,$sql)) {
     odbc_free_result($rowRes);
             } else {
                    // Livautetaan ruutuun virhe jos ei toimi
              echo 'Tiedosto on joko "vain luku" -
                    tyyppiä tai sitä ei voi muuten avata.
                    Mahdollisesti sql-lauseessa on jotakin
                    vikaa (tällöin tiedoston avaaminen on
                    ok)';
                    die();                            }

?>

ajv [15.08.2004 10:58:25]

#

Tämä olisi varmaan mennyt tuon ensimmäisen vinkkisi toisena listauksena, varsinkin kun näyttää siltä, että tätä ei julkaista...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta