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

    Insert funziona solo per alcune righe

    Lo script sottostante serve a spostare dei dati da una tabella a un'altra. La funzione unix_timestamp prende i dati da un campo datetime e li converte in formato timestamp.
    Non capisco perchè lo script inserisce solo alcuni record nella nuova tabella, mentre per altri restituisce l'errore specificato da IF. Non è che come al solito anzichè pensare al php è meglio che vada a dormire?
    Grazie in anticipo per i suggerimenti!



    # include il file esterno
    include ("conn_m_inc.php");

    # funzione per i caratteri speciali

    function strip_it($str) {
    $str=urldecode($str);
    $str=stripslashes($str);
    $str=htmlspecialchars($str);
    return($str);
    }

    # seleziono i dati dalla prima tabella

    $sql = mysql_query("SELECT gb_id, gb_name, gb_cosa, gb_message, UNIX_TIMESTAMP(gb_timestamp) as time, gb_user5 FROM envo_envoGB_GB ORDER BY gb_id");

    # ciclo per l'inserimento nella seconda tabella

    while ($riga = mysql_fetch_array($sql))
    {

    $gb_id=strip_it($gb_id);
    $time=strip_it($time);
    $gb_user5=strip_it($gb_user5);
    $gb_name=strip_it($gb_name);
    $gb_cosa=strip_it($gb_cosa);
    $gb_message=strip_it($gb_message);

    $gb_id=$riga["gb_id"];
    $time=$riga["time"];
    $gb_user5=$riga["$gb_user5"];
    $gb_name=$riga["gb_name"];
    $gb_cosa=$riga["gb_cosa"];
    $gb_message=$riga["gb_message"];


    $res=mysql_query("INSERT INTO envo_textnews VALUES ('$gb_id', '$time', '$gb_user5', '$gb_cosa', '$gb_message', '$gb_name')");


    # condizione per monitorare l'andamento dell'inserimento dati

    if(!$res)
    {
    echo " $gb_id - Error in transfer!
    \n";
    } else {echo "Variables Transfered!
    \n";}
    }
    Antropologia? Sì, grazie!
    http://www.antrocom.org

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    460
    Consigliasi l'uso di mysql_error() per sapere cosa va storto.
    There are 10 types of people in the world - those who understand binary and those who don't.

  3. #3
    Secondo mysqlerror:

    "Errore di sintassi nella query SQL vicino a 'antropologia! Tanti auguri, sperando che si riveli un'iniziativa utile e diverte' linea 1"

    La frase si riferisce a un campo text. Vicino ad antropologia c'è un apostrofo... Qualcosa mi dice che non è lo script allora! :|
    Come mi consigliate di estrarre il testo proteggendo i caratteri speciali?
    Antropologia? Sì, grazie!
    http://www.antrocom.org

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    460
    addslashes o addcslashes a tua scelta. Oppure usa una classe che incapsuli la gestione del database (tipo PDO, presumo), che fa tutto lei. Non so se in PHP esistano i PreparedStatement, ma in generale risolvono questo tipo di problemi.
    There are 10 types of people in the world - those who understand binary and those who don't.

  5. #5
    Ho provato a inserire di tutto di più nella prima funzione, senza successo:

    function strip_it($str) {
    $str=urldecode($str);
    $str=addslashes(stripslashes($str));
    $str=htmlspecialchars($str);
    $str=str_replace("<", "&lt;", $str);
    $str=htmlentities($str);
    $str=trim($str);

    return($str);
    }

    Adesso vado a cercarmi una classe... sta a vedere che faccio prima a inserire a manina santa tutti i 651 record!
    Antropologia? Sì, grazie!
    http://www.antrocom.org

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.