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

    inserire apice singolo su as, iSeries

    Devo popolare una tabella as400 prendendo dei dati da un file txt. La tabella in questione è composta da un unico campo alfanumerico, ed ogni record dovrebbe corrispondere ad una riga del file txt. Il problema è che le stringhe del file sono tutte scritte in maiuscolo, e per accentare una parola viene usato l'apice singolo "'". Quando vado ad inserire la stringa su as, sql interpreta l'apice singolo come la fine della stringa, e di conseguenza mi restituisce un errore. Le ho provate di tutte ma non c'è verso.
    Qualcuno sa come risolvere la cosa?

    Questo è un codice esemplificativo:
    <?php
    $lines="stringa di prova' ciao";
    $riga=str_replace("'","\'",$lines);
    if($riga!=""){
    $q="INSERT INTO TABELLAAS VALUES('$riga')";
    if(!odbc_exec($conn_as,$q)) echo "Errore SQL";
    }
    ?>

    Questo è l'errore tipico:
    "Warning: odbc_exec() [function.odbc-exec]: SQL error: [IBM][iSeries Access ODBC Driver][DB2 UDB]SQL0104 - Token CIAO non valido. Token validi: ,., SQL state 37000 in SQLExecDirect in C:\Programmi\Apache Group\Apache2\test\mod.php on line 16"

    Grazie a tutti

  2. #2
    Ho risolto da solo.
    Basta aggiungere il carattere di escape sql davanti all'apice. Non sapevo che tale carattere è proprio l'apice singolo.
    Quindi:

    $riga=str_replace("'","''",$lines);



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.