Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114

    [SQLite] Problemi query di inserimento

    Ho uno script PHP che crea dinamicamente delle queries e le invia ad un database sqlite.

    Per esempio data la seguente query

    Codice PHP:
    $conn sqlite_open("nomedatabase.db"0666$sqlite_error); 
    if(!
    $conn) {
        die(
    "Errore SQLite: ".$sqlite_error);
    }
    $insert sqlite_query($conn"INSERT INTO tabella VALUES (NULL, '1', '2012-12-10 10:00:00', 'contenuto1', 'contenuto2', 'contenuto3', 'contenuto4', 13)"); 
    var_dump($insert); 
    questa mi restituisce sempre "false", mentre lo stesso identico codice eseguito in un'altra pagina riesce ad eseguire l'operazione. Da cosa può dipendere questa discrepanza di esecuzione?
    Perché una pagina PHP riesce ad eseguire la query ed a scrivere nel database mentre l'altra no (avendo inoltre gli stessi permessi)? è possibile?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114
    Anche provando ad intercettare l'errore ($insert è false) non mi viene rilevato nulla

    Codice PHP:
    if($insert === falsesqlite_error_string(sqlite_last_error($conn)); 
    siccome lo script non va in die è da escludere anche che la connessione non avvenga, da cosa può dipendere questo "errore non errore"?

  3. #3
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    bho, cosa dice sqlite_error_string()?

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114
    Originariamente inviato da neroux
    bho, cosa dice sqlite_error_string()?
    assolutamente nulla!

    in pratica:
    - la connessione avviene visto che il "die" non interviene
    - la query (nonostante sia corretta) fallisce ma non viene stampato nessun errore

    non ha molto senso

  5. #5
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Come nulla? Nel tuo esempio sopra non stampi il risultato.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114
    nulla di nulla! è proprio qui il problema!!

    il codice è pressapoco il seguente
    Codice PHP:
    $conn sqlite_open("nomedatabase.db"0666$sqlite_error); 
    if(!
    $conn) { 
        die(
    "Errore SQLite: ".$sqlite_error); 

    echo 
    "INSERT INTO tabella VALUES (NULL, '1', '2012-12-10 10:00:00', 'contenuto1', 'contenuto2', 'contenuto3', 'contenuto4', 13)"
    $insert sqlite_query($conn"INSERT INTO tabella VALUES (NULL, '1', '2012-12-10 10:00:00', 'contenuto1', 'contenuto2', 'contenuto3', 'contenuto4', 13)"); 
    var_dump($insert);
    if(
    $insert === falsesqlite_error_string(sqlite_last_error($conn)); 
    sqlite_close($conn); 
    e mi restituisce il seguente risultato:
    codice:
    INSERT INTO tabella VALUES (NULL, '1', '2012-12-10 10:00:00', 'contenuto1', 'contenuto2', 'contenuto3', 'contenuto4', 13) bool(false)
    continuo a ripetere che questa cosa non ha senso, ci deve essere qualcosa che mi sfugge, anche perché la stessa identica query su un'altra pagina PHP funziona perfettamente

  7. #7
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    L'ho già scritto che non stampi il messaggio di errore.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    114
    in effetti hai ragione, ma non pensavo assolutamente che sqlite_error_string non stampasse nulla, ma pensavo che si comportasse come tutti i metodi "simili".

    Codice PHP:
    if($insert === false) echo sqlite_error_string(sqlite_last_error($conn)); 
    restituisce

    codice:
    SQL logic error or missing database
    ottimo! è già un passo avanti
    il che ci riporta alla domanda iniziale: "perché una pagina PHP riesce ad eseguire la query ed un'altra no?" Il database comunque c'è (lo leggo da un'altra pagina)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.