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

    Problema con passaggio di stringhe con caratteri speciali non modificabili

    Ciao ragazzi,
    ho un grossissimo problema, devo inserire nel database delle stringhe con caratteri speciali in questo formato:


    (.f8S/\H(=(>l]RbAy:]


    nel database sono memorizzate char(20) e sono considerate come chiavi per molte tabelle e molte sono anche le Foreing Key per le relazioni.


    Non posso modificare nulla, le chiavi devono essere così come sono.


    come posso considerarle tale e quali senza che PHP impazzisca?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Inseriscile passando prima la stringa a mysqli_real_escape_string()

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    1
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Inseriscile passando prima la stringa a mysqli_real_escape_string()
    Ciao, scusa il ritardo e grazie della risposta.
    Purtroppo mi sono dimenticato di scrivere che sono su piattaforma MSSQL (che mi sta facendo impazzire) e che non esiste un comparativo di mysqly_real_escape_string() per i driver sqlsrv.

    Vorrei trovare una soluzione del tipo: trasfrormo in md5 le stringhe, gli faccio fare tutto il lavoro sporco con php e le ricreo prima di storarle nel database.
    E' un'idea malsana?

    p.s. stavo provando con htmlentities, a schermo visulizza correttamente la stringa, ma quando devo inserirla nel db, succede qualcosa, credo che non riconosca la stringa confrontandola con le tabelle correlate:
    The INSERT statement conflicted with the FOREIGN KEY constraint "KEYTEST". The conflict occurred in database "datatest", table "dbo.test", column 'ID'.

  4. #4
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    NON testato personalmente, ma da http://stackoverflow.com/questions/5...rver-using-php

    Codice PHP:
    function mssql_escape($data) {
        if(
    is_numeric($data))
            return 
    $data;
        
    $unpacked unpack('H*hex'$data);
        return 
    '0x' $unpacked['hex'];

    per l'utilizzo:
    Codice PHP:
    mssql_query('
        INSERT INTO sometable (somecolumn)
        VALUES (' 
    mssql_escape($somevalue) . ')
    '
    ); 
    eXvision

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.