Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Creare log errori query su mysql

    Salve ragazzi,
    Avevo la necessità di creare una sorta di log sugli errori che si verificano durante l'esecuzione di alcune query e salvare la descrizione restituita da mysql_error() su una tabella del database.
    Ho incontrato delle difficolta, e allora ho salvato il tutto su un file di testo dal momento che mi serviva solo per effettuare dei test.

    Pero ora vorrei capire perchè dopo che si verifica un errore su una query non posso effettuarne un'altra successiva per salvare l'errore della precedente nel database. Questo si verifica anche se utilizzo due connessioni diverse per le due query. Qualcuno mi sa dire perche questo comportamento? E corretto?

    Questo è il codice:
    Codice PHP:
     $db_host="localhost";
     
    $db_user="root";
     
    $db_password="";
     
    $db_name="database_negozio";

    $db_connection=mysql_connect($db_host,$db_user,$db_password) or die("Tentativo di connesione al database fallito");

    mysql_select_db($db_name,$db_connection) or die("Non è stato possibile selezionare il database");


    $db_connection2=mysql_connect($db_host,$db_user,$db_password) or die("Tentativo di connesione al database fallito");

    mysql_select_db($db_name,$db_connection2) or die("Non è stato possibile selezionare il database");


    $sql_sel="Select * From ordini where i";//query con errore
    $result=mysql_query($sql_sel,$db_connection);

    $errore=mysql_error();


    $sql_insert="Insert Into log_errori_query Set descrizione=$errore";
    mysql_query($sql_insert,$db_connection2); 

  2. #2

  3. #3
    La query nello script originale non è questa:
    Codice PHP:
    $sql_insert="Insert Into log_errori_query Set descrizione=$errore"
    ma questa:
    Codice PHP:
    $sql_insert="INSERT INTO log_errori_query (descrizione) VALUES($errore)"
    e per questo che mi suggerisci le basi dell'SQL o per capire la domanda che ho posto?

  4. #4
    Leggi con attenzione il primo link che ti è stato indicato e chiediti per quale motivo la query di INSERT dell'errore fallisce.

  5. #5
    Ok ho risolto, ora funziona. Dovevo fare l'escape della stringa restituita da mysql_error.

    Mi è servito per capire certi concetti che mi sfuggivano anche se altre volte ho dovuto fare l'escape sulla stringa prima fare l'insert. Ero talmente fossilizzato che il problema fosse da imputarsi a qualcos'altro.

    Ti ringrazio.

  6. #6
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Non sarebbe meglio utilizzare error_log() e salvare gli errori su un file di testo?
    Se l'errore dovesse accadere a causa di un errore di connessione al database come fa a salvarti l'errore?
    Inoltre se si vuole fare qualcosa di ancora più 'bello' consiglierei l'uso di set_error_handler() e set_exception_handler(), che ne dite?
    Ciao

    http://it.php.net/manual/it/ref.errorfunc.php

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 © 2025 vBulletin Solutions, Inc. All rights reserved.