Come inserisco parole apostrofate in sql server

Non riesco a inserire variabili con apostrofi nel db sql server. I dati vengono gestiti con php, se vengono passate senza slash naturalmente va in errore, e fin qui è corretto, ma se metto lo slash mi restituisce sempre errore, come posso fare?  ???

Grazie,

ciao.

inviato 7 anni fa
Nando
X 0 X

Puoi far vedere come crei la query al database?

risposto 7 anni fa
Mario Santagiuliana
X 0 X
$idriparazione = $_GET['id_riparazione'];
$idapparato = $_GET['id_apparato'];
$stato_riparaz = $_GET['stato_riparaz'];
$data_riparazione = $_GET['data_riparazione'];
$tecnico = trim($_GET['tecnico']);
$guasto = trim($_GET['guasto']);
$soluzione = trim($_GET['soluzione']);

$sql = "UPDATE t_riparazioni SET
   data_riparazione = '$data_riparazione',
   tecnico = '$tecnico',
   guasto = '$guasto',
   soluzione = '$soluzione',
   stato = '$stato_riparaz'
   WHERE id_riparazione = '$idriparazione'
";
risposto 7 anni fa
Nando
X 0 X

Mi sono dimenticati di chiedertelo, l'errore esatto che ti riporta il php qual'è?

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Io invece ho dimenticato a segnalarlo  ;D

Ti posto tutto quello che mi restituisce:

Warning: mssql_query() [function.mssql-query]: message: Riga 4: sintassi non corretta in prossimit?i 'alimentatore'. (severity 15) in C:\www\arcdb\php\riparazioni\modifica_riparazione.php on line 25 Warning: mssql_query() [function.mssql-query]: message: Virgoletta di chiusura mancante prima della stringa di caratteri ' '. (severity 15) in C:\www\arcdb\php\riparazioni\modifica_riparazione.php on line 25 Warning: mssql_query() [function.mssql-query]: Query failed in C:\www\arcdb\php\riparazioni\modifica_riparazione.php on line 25

risposto 7 anni fa
Nando
X 0 X

Prova un po' così:

$sql = 'UPDATE t_riparazioni SET
   data_riparazione = `$data_riparazione`,
   tecnico = `$tecnico`,
   guasto = `$guasto`,
   soluzione = `$soluzione`,
   stato = `$stato_riparaz`
   WHERE id_riparazione = `$idriparazione`
';

(nota che ci sono gli apici inversi e ho tolto il doppio apice.

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Niente  :(

Warning: mssql_query() [function.mssql-query]: message: Riga 2: sintassi non corretta in prossimit?i '`'. (severity 15) in C:\www\arcdb\php\riparazioni\modifica_riparazione.php on line 25

Warning: mssql_query() [function.mssql-query]: Query failed in C:\www\arcdb\php\riparazioni\modifica_riparazione.php on line 25

ma non potrebbe essere il db fisicamente che non li accetta ?

risposto 7 anni fa
Nando
X 0 X
ma non potrebbe essere il db fisicamente che non li accetta ?

Si, potrebbe anche essere...sinceramente non ho mai avuto esperienze con SQL Server...

Prova a creare la query eliminando gli apici inversi ( ` ), vedi che errori riporta...

risposto 7 anni fa
Mario Santagiuliana
modificato 7 anni fa
X 0 X
sinceramente non ho mai avuto esperienze con SQL Server...

purtroppo anchio ma purtroppo devo usarlo perché è questo che mi hanno richiesto come db

Warning: mssql_query() [function.mssql-query]: message: Riga 3: sintassi non corretta in prossimit?i 'Rossi Mario'. (severity 15) in C:\www\arcdb\php\riparazioni\modifica_riparazione.php on line 25

Warning: mssql_query() [function.mssql-query]: message: Virgoletta di chiusura mancante prima della stringa di caratteri 'alimentatore, soluzione = Sostituito alimentatore., stato = 0 WHERE id_riparazione = 14 '. (severity 15) in C:\www\arcdb\php\riparazioni\modifica_riparazione.php on line 25

Warning: mssql_query() [function.mssql-query]: Query failed in C:\www\arcdb\php\riparazioni\modifica_riparazione.php on line 25

risposto 7 anni fa
Nando
X 0 X

Che versione del database è?

Sarebbe il caso di controllare nella sua documentazione sull'inserimento dei valori e sulla creazione delle query, magari ha qualche funzione specifica...

risposto 7 anni fa
Mario Santagiuliana
X 0 X

SQL Server 2000

risposto 7 anni fa
Nando
X 0 X

Vedi se qui riesci a trovare qualche cosa di utile:

http://msdn.microsoft.com/en-us/library/aa175269(SQL.80).aspx

Forse questo può interessare?

http://us3.php.net/manual/en/function.mssql-query.php#70078

risposto 7 anni fa
Mario Santagiuliana
modificato 7 anni fa
X 0 X

Leggendo in giro ho scoperto che microsoft durante la creazione della query sql vuole passati due apici.

Eccome la soluzione:

str_replace("'", "''", $dato);

Grazie :bye:

risposto 7 anni fa
Nando
X 0 X

Come ti avevo segnalato allora  ;)

Forse questo può interessare?

http://us3.php.net/manual/en/function.mssql-query.php#70078

Ciao

risposto 7 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda