PHP mysql_real_escape_string

  • Huhu,das oben genannte ist ja für Strings, was nimmt man für Integer?


    PHP
    $sql "UPDATE beispieltabelle SET BeispielZahl = ".mysql_real_escape_string($_POST['Beispielfeld'])." WHERE Name ='pName'";


    Wäre Nett wenn mir das jemand anhand dieses Beispieles sagen könnte :)


    Liebe Grüße

  • Das oben ist kein PHP.

    PHP
    $sql = "UPDATE beispieltabelle SET BeispielZahl = ".intval($_POST['Beispielfeld'])." WHERE Name = '".mysql_real_escape_string($pName)."'";


    Und man sollte MySQLi verwenden und nicht die mysql_ Funktionen.

  • Ich hatte dir bereits in diesem Thread vorgeschlagen PDO zu nutzen und gab dir auch ein Beispiel dafür.
    Die alte MySQL Funktion wird bald garnicht mehr geben und dann kannst du dein ganzes System umschreiben.
    PDO ist sicherer und dort brauchst du auch nichts escapen. ^^

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Ich hatte dir bereits in diesem Thread vorgeschlagen PDO zu nutzen und gab dir auch ein Beispiel dafür.
    Die alte MySQL Funktion wird bald garnicht mehr geben und dann kannst du dein ganzes System umschreiben.
    PDO ist sicherer und dort brauchst du auch nichts escapen. ^^


    Wozu PDO?
    Als "normale" Webaplikation brauchst du kein PDO, da reicht auch MySQLi.

  • PDO ist um einiges sicherer sowie schneller.


    Also das halt ich schlichtweg für ein Gerücht.


    Sicherer vielleicht, aber schneller wage ich doch sehr anzuzweifeln

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Auch MYSQL i bietet objektorientierung.

    PDOs auch.

    Sicherer vielleicht, aber schneller wage ich doch sehr anzuzweifeln

    Doch. angenommen du willst 10 Zeilen löschen, dann sendest du 1 mal den Query DELETE FROM c WHERE d = ? AND e = ?
    Und musst nur 20 Werte senden anstatt 10 Querys mit unterschiedlichen d und e.

    Kalcor: "... it makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."

  • PDOs auch.

    Doch. angenommen du willst 10 Zeilen löschen, dann sendest du 1 mal den Query DELETE FROM c WHERE d = ? AND e = ?
    Und musst nur 20 Werte senden anstatt 10 Querys mit unterschiedlichen d und e.


    Es ging mir darum zu sagen, dass mal mysqli verwenden kann und nur, damit man die Objekte nutzen kann nicht PDO nutzen muss.
    Also das mysql eine objektorientierte Alternative ist.


    PDO bietet nur Objekte soweit ich weiß

    ik bin der vito c:

  • Doch. angenommen du willst 10 Zeilen löschen, dann sendest du 1 mal den Query DELETE FROM c WHERE d = ? AND e = ?
    Und musst nur 20 Werte senden anstatt 10 Querys mit unterschiedlichen d und e.


    Ja gut :D


    Bin davon ausgegangen, das er im Grunde was anderes meinte :whistling:
    und irgendwie glaube ich, das er nicht das meinte, das du hier beschrieben hast - aber das sei mal dahin gestellt :D

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ob PDO oder MySQLi kann jeder für sich selbst entscheiden.
    Da ich PDO nutze habe ich ihm auch mein Beispiel gegeben, was definitiv sicherer und besser ist als MySQL.

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Was Atrox anspricht sind prepared Statements, die kann MySQLi genauso wie PDO, ich wage aber zu bezweifeln, dass sie für User Control Panel einen spürbaren Performanceboost bringen.


    Was man einfach mal beachten sollte: MySQLi ist wie der Name schon sagt für MySQL, PDO für "Data Objects" - bietet also eine Abstraktionsschicht für verschiedene SQL-Datenbanken (beispielsweise SQLite, Postgre, ...) und das bei sehr wenig Overhead. Dieser wenige Overhead wird niemals in einem User Control Panel, um genau zu sein in wohl keiner Webapp, zu Problemen führen.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.


  • Was benutzt du dann? SQLite ? MySQL ist der Dienst aber egal.
    Ob es schneller ist sei mal dahin gestellt, aber was ist denn soo viel besser dass man es unbedingt nutzen soll/muss?


    Du bist wahrscheinlich nicht so dumm um zu wissen, dass ich die "normale" MySQL Funktion damit meinte. Für mich hat MySQLi und PDO keinen grossen Unterschied. Ich persöhnlich finde PDO am einfachsten und nutze es. Ich brauche jetzt nicht abstreiten, dass mySQLi besser oder was weiss ich was ist. Ich gab ihm ein Tipp auf MySQLi oder PDO umzusteigen und da ich PDO nutze gab ich ihm auch ein Beispiel davon. Wenn es was zu diskutieren gibt schreib mir ne PN

    Für das Moderationsteam:
    Ich nutze offene WLAN's und bin im Intercafe oder im Hotel. (Vor Ban wegen Multiaccount deswegen bitte eine private Nachricht, um dies zu klären).

  • Mal so eine Frage wieso sollte man Zahlen escapen. Es ist ja auch möglich via php oder html zu überprüfen ob die Eingabe sich um eine Zahl handelt.


    Dann bitte nur per php

    PHP
    if ( is_numeric($var) )


    per html überprüfen wäre lächerlich. Würde nur clientseitig schnelle infos zeigen ^^

    ik bin der vito c: