Autor Zpráva
martin2
Profil *
Ahoj, snazim se zapsat data do SQLITE3 databaze.
Cteni funguje bez problemu, ale kdyz do db neco zkusim zapsat, tak se to nezapise.

Kdyz v prohlizeci otevru php skript, dobu to pise "cekani na localhost" a v adresari "test" se obejvi soubor "client.sqlite-journal" a jinak to nic nedela. Kdyz ale vygenerovane prikazy dam do schranky a spustim v http://sqlitebrowser.sourceforge.net/ tak funguji.

Prava k souborum by mela byt v poradku:
martin@martin ~/klient $ ls -lh
celkem 92K
drwxrwxrwx 2 martin martin 4,0K 2012-05-01 15:40 test
martin@martin ~/klient $ ls -lh test/
celkem 24K
-rw-rw-rw- 1 martin martin 3,0K 2012-04-30 00:10 client.sqlite
-rw-rw-r-- 1 martin martin  716 2012-05-01 15:50 dbtest.php
martin@martin ~/klient $ 

Skript:
<?php
    $heslo = "12345";
    $id = "1";

    try {    
    $db = new PDO('sqlite:client.sqlite');
    echo ("SELECT id, pass, startTime FROM client WHERE pass='".$heslo."' LIMIT 1");
    echo "<br/>";
    $dotaz = $db->query("SELECT id, pass, startTime FROM client WHERE pass='".$heslo."' LIMIT 1");    
    foreach ($dotaz as $row) {
        if ( strtotime($row["startTime"]) < time() ) {
            echo "ID=".$row["id"]." PASS=".$row["pass"]." STARTTIME=".$row["startTime"];
            echo "<br/>";
            echo ("UPDATE client SET startTime='".date('c')."' WHERE id='".$id."'");
            echo "<br/>";
            $db->query("UPDATE client SET startTime='".date('c')."' WHERE id='".$id."'");
        }
    }   
    $db = NULL;
    } catch(PDOException $e) {
        print 'Exception : '.$e->getMessage();
    }
 ?>

Skript vygenruje stranku:
SELECT id, pass, startTime FROM client WHERE pass='12345' LIMIT 1
ID=1 PASS=12345 STARTTIME=
UPDATE client SET startTime='2012-05-01T15:55:09+02:00' WHERE id='123'
coz je spravne.
Kde by mohla byt chyba?
Davex
Profil
Chyba by mohla být v tom, že se díváš na jiný soubor než spouštíš, protože se neznámo kde bere hodnota $id = 123, která se ale v tomto skriptu nastavuje na $id = 1.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: