2013-03-22 11 views
6

Ho cercato questo argomento, ma non ho trovato alcuna soluzione; c'era una domanda simile, ma non è stata risolta: Working with characters with accents in sql query and table nameInterrogazione di SQL Server da PHP

Sto lavorando con un database su SQL Server 2005 che utilizza Modern_Spanish_CI_AS come confronto. Sto sviluppando un front-end Web utilizzando PHP e sono bloccato da un problema di accento.

C'è un tavolo (diciamo "Objetos") i cui campi sono: ID Nome Descrizione

non posso interrogare questa tabella per l'accento. Se creo la mia query "Select a.ID, a.Name FROM Objetos" funziona perfettamente, ma se modificato in "Select a.ID, a.Descripción FROM Objetos" restituisce zero righe.

non posso cambiare le regole di confronto del database, così mi è stato decodifica del query prima di inviarli $ssql = utf8_decode($ssql); ... E 'strano, con questa soluzione che posso fare INSERT, ma non posso SELECT.

Qualche idea? Grazie

+5

Se si desidera vivere una vita felice, utilizzare sempre solo caratteri ascii standard per le definizioni di tabelle e campi. – Teson

+0

Come ha detto l'utente247245, si avrà una corsa dura se si utilizza qualsiasi cosa tranne caratteri ansi inferiori per i nomi di tabella/colonna. Dovresti seguire la stessa regola che in qualsiasi altra lingua: i nomi delle entità NON DEVONO contenere caratteri speciali. In aggiunta a quello. Dovresti SEMPRE usare utf8_general_ci o una delle sorelle per tutti i tuoi database e tabelle. Questa raccolta contiene tutti i caratteri speciali e può essere facilmente utilizzata in qualsiasi codice di programmazione. – ToBe

risposta

1

Prova a circondare la colonna con il carattere "` ". Se non funziona, prova a rimuovere "a". prefisso dal nome della colonna.

Problemi correlati