concattenieren Text und Werte in Go SQL -Abfragen
Bei der Erstellung eines Text -SQL -Abfrages in GO, es gibt bestimmte Syntax -Regeln, die bei der Verkleidung von Stimmen und Wertkomponenten, insbesondere bei den Python -Code, in den Python -Abfragen. Der Tuple -Ansatz ist in Go nicht gültig, und der Versuch, Parameter als Zeichenfolgen zu gründen, führt zu Fehlanpassungsfehlern.
Die ideiomatische Möglichkeit, dies in GO zu erreichen, besteht darin, FMT.Sprintf zu verwenden, um die Abfragebarstellung zu formatieren. Auf diese Weise können Sie Werte zur Laufzeit in die Zeichenfolge einbetten:
query: = fmt.spintf (`select columna aus tafea wobei columnb = %d und columnb = %s`,, Somenumber, Somestring)
query := fmt.Sprintf(`SELECT columnA FROM tableA WHERE columnB = %d AND columnB = %s`,
someNumber, someString)
Reihen, ERR: ERR: SQL Injection Schwachstellen.
rows, err := db.Query(query, val1, val2)
vermeiden SQL Injection
Es ist entscheidend zu beachten, dass die String -Verkettung in SQL -Abfragen zu Schwachstellen in die Injektion führen kann. Um dieses Risiko zu mildern, verwenden Sie vorbereitete Anweisungen und parametrisierte Abfragen. Durch die Übergabe von Werten als Parameter können Sie verhindern, dass böswillige Eingaben die beabsichtigte SQL -Abfrage ändern. zum Beispiel:
stmt, err: = db.prepare auswählen (`` Zeilen, err: = stmt.query (val1, val2)
Mit Verwendung vorbereiteter Aussagen können Sie Ihre Bewerbung vor böswilligen SQL -Eingaben schützen, während Sie die Bequemlichkeit der Erstellung dynamischer Abfragen beibehalten.
.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3