Kannst du mir den Grund nennen, warum du eine Zahl escapen möchtest?

mysql_escape_string argument type mismatch (argument 1)
- Campbell
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Korrekt, du kannst dir das Tutorial zu MySQL Queries in meiner Signatur anschauen.
-
- Warum deklarierst du deinen query-String dort oben? Es kann doch sein, dass du ihn garnicht brauchst. Deklariere den String erst, wenn du ihn auch tatsächlich brauchst, sonst verschwendest du Ressourcen.
- Die if-Abfrage kannst du vereinfachen (Siehe unten).
- Zu deinem INSERT-Problem: Setzte GunID als PRIMARY_KEY (Wichtig!) und verwende dann INSERT IGNORE INTO.
- Verwende nicht SpielerName(), sondern speichere den Spielernamen einmalig in eine Variable. Dann musst du den Namen nicht x-Mal getten.
- Verwende mysql_format() und %e, wenn es schon existiert! Dein Script dort oben ist gefährdet bzgl. SQL Injections!
- Warum eine Stringgröße von 200? Du brauchst doch nicht so viel! Verwende http://www.zeichenzähler.de/, um die Länge deiner Strings zu bestimmen. Hier: 81 (= Länge von String in mysql_format()) - 4 (%i + %e = 4 Zeichen) + 24 (= MAX_PLAYER_NAME) + 2 (weaponID ist max. 2 Zeichen lang) = 103.
Also:
OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
switch(dialogid) {
case CASE_DIALOG_BLACKLIST: {
if(response) {
if(isnumeric(inputtext)) {
new weaponID = strval(inputtext);
if(weaponID >= 1 && weaponID <= 46 && (weaponID < 19 || weaponID > 21)) {
new query[103];
mysql_format(MySQLconnection, query, sizeof(query), "INSERT IGNORE INTO `blacklisted_Guns` (`GunID`, `Adminname`) VALUES ('%i', '%e');", weaponID, SpielerName(playerid));
mysql_tquery(MySQLconnection, query, "", "");
} else {
ShowPlayerDialog(playerid,DIALOG_GUNBLACKLIST,DIALOG_STYLE_INPUT,"Gun-Blacklist","Du hast eine ungültige Waffen-ID eingegeben.\nGib eine neue, gültige Waffen-ID ein.","Fertig","Abbrechen");
}
} else {
SendClientMessage(playerid, GRAU, "* Gebe eine nummerische WaffenID ein.");
}
} else {
SendClientMessage(playerid, GRAU, "* Gun-Blacklist beendet.");
}
}
}
} -
breadfish.de
Hat das Thema geschlossen.