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

    mysql_close mi chiude una connessione diversa da quella specificata

    Ciao a tutti,
    devo fare una insert nel db MySql, se questa fallisce devo farne un'altra in una tabella di log per segnalare l'errore.

    Ecco come lo sto facendo:

    Codice PHP:
    $conn4db1 connetti('test');
        
    $result mysql_query($query$conn4db1);
        
    $dbid1_ai mysql_insert_id($conn4db1);
        if (! 
    $result) {
            
    $querylog "INSERT INTO t20 (c20timestamp, c20user, c20query) VALUES (" $timestamp ", '" $userinsert "', '" PreparaQuery($query) . "');";
            
    $resultlog mysql_query($querylog$conn4db1);
        }
        
    mysql_close($conn4db1); 

    La funzione PreparaQuery pulisce la scringa da caratteri dannosi per MySql:

    Codice PHP:
    function PreparaQuery($stringa) {
        if (
    get_magic_quotes_gpc()) {
            
    $stringa stripslashes($stringa);
        }
        
    $connpq connetti('test');
        
    $stringa mysql_real_escape_string($stringa);
        
    mysql_close($connpq);
        return 
    $stringa;} 

    L'errore che ottengo è mysql_query(): 20 is not a valid MySQL-Link resource sulla riga $resultlog = mysql_query($querylog, $conn4db1);

    In sostanza la funzione PreparaQuery mi chiude la connessione $conn4db1 quando invece dovrebbe chiudere la connessione $connpq.
    Perché???

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Basta leggere la documentazione:

    http://php.net/manual/it/function.mysql-connect.php

    Se si fa una seconda chiamata a mysql_connect() con gli stessi argomenti, nessuna nuova connessione sarà stabilita, ma sarà restituito l'identificativo della connessione già aperta.

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Inoltre ti consiglio di usare PDO, così oltre al fatto che le funzioni mysql_ sono deprecate, non devi neanche farti una funzione a parte per ripulire le query, basta che usi i prepared statement e ci pensa PHP ad assicurarti la rimozione di contenuti dannosi.

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    $connpq dove la apri e soprattutto che link contiene?

    EDIT: come non detto XD

  5. #5
    Quote Originariamente inviata da boots Visualizza il messaggio
    Ops, non ci avevo fatto caso... Grazie!

    P.S. - Appena avrò un po' più di tempo guarderò questo PDO...

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.