Hi
gibt es so etwas also dini_Isset als z.b ein stock mysql_isset weil ich wüsste nicht wie ich das machen soll bin neu in mysql
mfg tdXkiller
Hi
gibt es so etwas also dini_Isset als z.b ein stock mysql_isset weil ich wüsste nicht wie ich das machen soll bin neu in mysql
mfg tdXkiller
stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
Is aber resourcen fressend
Und wie würde man dann nachprüfen ob in der Mysql Tabelle z.b Bann überhaupt gesetzt ist ?
Am besten man verwendet nur
format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE %s, Table, Field, To, Where,);
Und Where würde dann ausschauen "a" = "b" and "c" = "d"..., dann kannst du mehrere where Bedingungen einbauen.
Tabellen-, Feldnamen und Zahlen etc. zu escapen ist Schwachsinn. Man escaped NUR Strings und setzt diese in String-Begrenzer.
Eine alternative zum escapen ist direkt mysql_format zu verwenden um dies noch hinzuzufügen da
mysql_format das escapen schon beinhaltet jedoch muss man dazu den Platzhalter %e verwenden
für die wie schon oben genannt strings
Eine alternative zum escapen ist direkt mysql_format zu verwenden um dies noch hinzuzufügen da
mysql_format das escapen schon beinhaltet jedoch muss man dazu den Platzhalter %e verwenden
Das ist keine Alternative, man escaped nur mit einer anderen Funktion. Trotzdem wird es so, wie es oben beschrieben ist nicht gut funktionieren, da eben Zahlen, SQL-Begriffe, Tabellen, Felder etc. eben mal nicht escaped werden sollen.
Das ist keine Alternative, man escaped nur mit einer anderen Funktion. Trotzdem wird es so, wie es oben beschrieben ist nicht gut funktionieren, da eben Zahlen, SQL-Begriffe, Tabellen, Felder etc. eben mal nicht escaped werden sollen.
Da hast du voll und ganz recht jedoch hab ich es falls du es nicht gesehen hast noch den kleinen teil hinzu editiert
Zitatfür die wie schon oben genannt strings
jedoch ist es so das mysql_format wenn du den platzhalter %e bei einem string verwendest dieser automatisch escaped wird.
ich hatte es nur noch extra nochmal hinzugefügt besser gesagt erwähnt
kannst ja im wiki eintrag nach lesen
http://wiki.sa-mp.com/wiki/MySQL#mysql_format
Zitat
Important Note: This function was added in version R6-2 and will not work in earlier versions!
%e Escapes data directly without the need to call mysql_escape_string() before
Ok ich checke nichts mehr wie gesagt bin nen noob im gebiet mysql o.o
Ok ich checke nichts mehr wie gesagt bin nen noob im gebiet mysql o.o
ganz einfach du benutz ein query um die werte zu updaten.
ein beispiel:
ich benutze immer mysql_format jedoch kannst du auch eine normale formatierung benutzen.
bei mysql_format musst du jedoch die verbindung angeben die du einer variabel zugeordnet hast
new verbindung = mysql_connect(...);
bei OnGameModeInit
new query[256];
mysql_format(verbindung,query,"UPDATE `tabelle` SET `Int` = '%d', `String` = '%s', `Float` = '%f' WHERE `Ort` = '%s'",2,"test",1.2345,"ort angeben");
mysql_query(query,verbindung);
UPDATE , SELECT , INSERT , sind befehle welche dan ausgeführt werden mit dem senden des querys also über mysql_query
dabei kommt zuerst die tabelle und danach werden den jeweiligen spalten beispiel Int den wert zugeordnet wo der Ort jetzt in dem fall den string ort angeben enthält
Daher sind
tabelle = die tabelle
und
Int, String, Float Ort Spalten der Tabelle "tabelle "
es würde auch so gut
format(query,256,"UPDATE `tabelle` SET `Int` = '%d', `String` = '%s', `Float` = '%f' WHERE `Ort` = '%s'",2,"test",1.2345,"ort angeben");
gehen
das worüber hier diskutiert wurde ist sicherheits bedingt gegen sql injections also das du kein Opfer dieser injection wirst.
Dabei können daten wie das passwort ( allgemein strings) abgefangen werden und dementsprechent verwendest werden.
Beispiel das jemand die daten von deinem Account hat und sich damit einloggt. ( Um dies mal grob zu erklären) Um nun sich gegen sowas zu schützen
kann man das per mysql_format machen in dem man für den platzhalter bei strings '%s' '%e' verwendet oder
mysql_real_escape_string zum beispiel für das MySQL plugin von BlueG dabei wird der string auch gesichert.
Ähm ja und wie finde ich jetzt raus ob das vorhanden ist ist für mein Bann System und da wird mit dini_Isset(Banndata, "BannTime") bestimmt ob es ein Time oder Perma bann ist
mfg tdXkiller
Ähm ja und wie finde ich jetzt raus ob das vorhanden ist ist für mein Bann System und da wird mit dini_Isset(Banndata, "BannTime") bestimmt ob es ein Time oder Perma bann ist
mfg tdXkiller
also willst du das datum speichern also den timestamp speichern oder wie ?
hmm mir fällt gerade auf das geht in ner Tabelle garnicht also ist schon gut
hmm mir fällt gerade auf das geht in ner Tabelle garnicht also ist schon gut
was willst du machen schreibs doch einfach du kannst den unix-timestamp speichern als integer wert oder auch im datum format
nicht das es hier wieder heißt "Die Leute helfen nur bei kleinen Problemen blablabla"
Nee geht schon alles hatte nen denkfehler