String konvertieren

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: String konvertieren

Beitrag von Kiffi »

Thorsten1867 hat geschrieben: 10.06.2022 20:47

Code: Alles auswählen

Word$ = Trim(InputRequester("Datenbank", "Befehl eingeben", ""))

SQL$ = "select * from tabelle where name like '%" + Word$ + "%'"
nee, lieber mit Bindungsvariable arbeiten (siehe alle SetDatabase*() - Befehle).
PB-Doku hat geschrieben:Bindungsvariablen machen das Erstellen von Statements mit variablen Daten leichter, denn es gibt keine Notwendigkeit, diese Daten in den String einzufügen. Der Statement-String kann die Platzhalter enthalten, und die Daten werden vor Ausführung der Anweisung verknüpft ("gebunden"). Dieses Verfahren vermeidet auch Sicherheitslücken aufgrund von möglicher "SQL-Injection", welche auftreten können, wenn Daten (wie Strings) direkt in den Anweisungstext eingefügt werden. Da die Anweisung nur den Platzhalter enthält, besteht keine Gefahr.
Hygge
Benutzeravatar
TroaX
Beiträge: 660
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: String konvertieren

Beitrag von TroaX »

PB-Doku hat geschrieben:Bindungsvariablen machen das Erstellen von Statements mit variablen Daten leichter, denn es gibt keine Notwendigkeit, diese Daten in den String einzufügen. Der Statement-String kann die Platzhalter enthalten (präpariert - prepared Statement), und die Daten werden vor Ausführung der Anweisung verknüpft ("gebunden"). Dieses Verfahren vermeidet auch Sicherheitslücken aufgrund von möglicher "SQL-Injection", welche auftreten können, wenn Daten (wie Strings) direkt in den Anweisungstext eingefügt werden. Da die Anweisung nur den Platzhalter enthält und enthaltene SQL-Anweisungen in den übergebenen Werten nicht mehr interpretiert werden, besteht keine Gefahr.
Hier muss ich echt mal sagen, das mir die Formulierung auch nicht sonderlich gut gelungen erscheint. Aber wir kennen ja mittlerweile alle, das in der PB-Hilfe ungern das Kind beim Namen genannt wird. Vor allem, wenn sich die Formulierungen oder Erklärungen ein wenig an dem anlehnen, was gebräuchlicher ist :lol:
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Wolfvater Loki
Beiträge: 52
Registriert: 22.05.2022 15:37

Re: String konvertieren

Beitrag von Wolfvater Loki »

Danke für jede einzelne Hilfe. Mit langem Warten, tut mir leid. Trotzdem danke für die Hilfe.
Wolfvater Loki
Er wünscht euch schöne Grüße.
Benutzeravatar
al90
Beiträge: 1097
Registriert: 06.01.2005 23:15
Kontaktdaten:

Re: String konvertieren

Beitrag von al90 »

Hi,

ich weis jetzt nicht ob ich das richtig verstanden habe. Aber zu diesem Thema fiel mir wieder ein kleiner Code ein
den ich selbst mal für ein Project benötigte & Entwickelte. Dabei kann man wunderbar mir Arrays arbeiten da diese
ja bekanntlich sehr schnell sind. (Name$(0-65535)) Der Zugriff darauf erfolgt somit in Windeseile. Der Nachteil
ist das wiederholungen nicht auszuschließen sind. Prozentual gesehen aber eher unwarscheinlich.

Hier mal der Code. Vielleicht ist dieser auch nützlich. :?:

Code: Alles auswählen

Procedure.i GetHashCode(Extension$)

Protected result.w, x.i

For x=1 To Len(Extension$)
  result * 255
  result + Asc(Mid(Extension$,i,1))
Next

ProcedureReturn result & $FFFF

EndProcedure

; HashCode von 0 - 65535 ermitteln.

Debug GetHashCode("EXE")
Debug GetHashCode("exe")
Debug GetHashCode("TXT")
Debug GetHashCode("txt")
Falls Groß/Klein schreibung nicht berücksichtigt werden soll, einfach mit UCase/LCase arbeiten. :wink:
Antworten