Antworten auf deine Fragen:
Neues Thema erstellen

PHP+MSSQL: '-Zeichen im SQL-Statement schützen/löschen

lachender_engel

Aktives Mitglied

Hallo, Forum.

Ich stelle ein MSSQL-Statement aus verschiedenen Strings zusammen.
Das Insert-Statement sieht z.B. so aus:
PHP:
$sql="INSERT INTO tabelle (feld1, feld2) VALUES ('$a','$b');"
Wenn ein String - z.B. $a - "Ich bin's" enthält sieht der Inhalt von $sql z.B. so aus:
Code:
INSERT INTO tabelle (feld1, feld2) VALUES ('Ich bin's','und du');
Durch das '-Zeichen in $a bekomme ich nun einen Fehler in der Query.

Ich suche jetzt eine Möglichkeit entweder trotz des zusätzlichn ' die Query zu schreiben - das Zeichen darf nicht verändert werden! - oder das '-Zeichen komplett zu löschen. Idealer Weise auch direkt das "-Zeichen berücksichtigen.

Mit preg_replace klappt es nicht, es kommt die Meldung
Code:
preg_replace(): No ending delimiter ''' found in...
Hat jemand eine Idee, wie ich damit umgehen kann/muss/soll?

Danke!
 

lachender_engel

Aktives Mitglied

AW: PHP+MSSQL: '-Zeichen im SQL-Statement schützen/löschen

Oh es geht ja um mssql.

Genau ;-)
mysql_real_escape_string würde trotzdem funktionieren, wenn ich einen MySQL-Server hätte - habe ich aber leider bei dem Projekt nicht.


Hatte ich beide schon probiert. addslashes baut ein \ vor das '-Zeichen.
Wird aber trotzdem nicht in die DB geschrieben. Und, das Feld soll ja auch nicht verändert werden, da er von einer anderen SW ausgelesen wird.
 

Ravetracer

Hobbyfotograf

AW: PHP+MSSQL: '-Zeichen im SQL-Statement schützen/löschen

Eventuell hilft dir folgendes Snippet:

PHP:
function mssql_escape_string($string_to_escape) { 
$replaced_string = str_replace("'","''",$string_to_escape); 
return $replaced_string; 
}
Gefunden hier:
 

M3g4Star

Nicht mehr ganz neu hier

AW: PHP+MSSQL: '-Zeichen im SQL-Statement schützen/löschen

Die Doku liefert direkt in den Kommentaren auch eine Lösung die dir noch "\0" mit ersetzt. sowie die Slashes abfängt.



Gruß M3g4
 

lachender_engel

Aktives Mitglied

AW: PHP+MSSQL: '-Zeichen im SQL-Statement schützen/löschen

Eventuell hilft dir folgendes Snippet:

PHP:
function mssql_escape_string($string_to_escape) { 
$replaced_string = str_replace("'","''",$string_to_escape); 
return $replaced_string; 
}
Gefunden hier:

DAS ist der entscheidende Tipp gewesen - und sooo einfach und logisch ;-)
Es klappt damit!

DANKE für die Hilfe!
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.615
Beiträge
1.538.352
Mitglieder
67.526
Neuestes Mitglied
Winfriedtesmer
Oben