Nochtans gebruik ik het volgende:
$string = mysql_real_escape_string($string);
Maar blijkbaar is dit niet genoeg want zodra er schuine quotes in de string staan, loopt heel de SQL query vast en krijg ik errors dat de query niet goed gevormd zou zijn.
Advies geven is ok, maar doen alsof de topicstarter iets fout doet is vreemd. Een mysql real escape string in een functie proppen is best efficient aangezien je niet steeds het volledige comnando hoeft in te voeren en eventuele aanpassingen hoef je alleen in de functie door te voeren. Ook het vooraf definieren van een variabele inclusief mysql real escape string is niet per definitie fout. Dat jullie (en ik) het anders doen of jullie het op school anders hebben geleerd betekent niet dat jullie het recht hebben om het als foutief te betitelen.
Over het algemeen moet hier een beetje out of the box gedacht worden en niet alles doen volgens de (ongeschreven) regels die jullie hebben aangeleerd. Cliche: er zijn meer wegen die naar rome leiden, en de keuze welke manier het beste is hangt af van je manier van scripten.
Een mysql real escape string in een functie proppen is best efficient aangezien je niet steeds het volledige comnando hoeft in te voeren en eventuele aanpassingen hoef je alleen in de functie door te voeren.
Ik zal voor de volledigheid even vermelden, dat de code die ik gepost heb, enkel en alleen in functie was van het probleem van het topic.
De clean() functie is namelijk in werkelijkheid veel uitgebreider, en past nog andere conversies en controles toe die buiten de scope van dit topic zitten. Daarom, om geen verwarring te zaaien, had ik de clean() functie ingekort met enkel de code die ertoe doet, en moest die clean functie er inderdaad zo uitzien dan is het overbodig.
Maar dus, de discussie zou over zo'n dingen niet moeten gaan, aangezien ze niets met de openingspost te maken hebben. Als mensen een vraag posten op een forum, dan kan je er altijd rekening mee houden dat de geposte code ingekort kan zijn / een foutieve syntax detail kan hebben / te omslachtig kan lijken.
Maar zolang het niets met het probleem van het topic te maken heeft, hoeft dat ook niet telkens vermeld te worden, want hoogstwaarschijnlijk is de topic-starter daar al lang van op de hoogte.
Wil je efficiënt script, of niet?
Als je straks een topic gaat starten dat je script teveel geheugen verbruikt, dan weet je wat ik in ieder geval gezegd heb.
Wat een gezeik over geheugengebruik! Verdiep je eens in de materie om te zien hoe nihil het verschil is in geheugengebruik. Dit noem ik nou azijn pissen om je gelijk te halen op basis van een non-argument.
[quote="- Aar - op 27/05/2011 00:57:59"]
Wil je efficiënt script, of niet?
Als je straks een topic gaat starten dat je script teveel geheugen verbruikt, dan weet je wat ik in ieder geval gezegd heb.
Wat een gezeik over geheugengebruik! Verdiep je eens in de materie om te zien hoe nihil het verschil is in geheugengebruik. Dit noem ik nou azijn pissen om je gelijk te halen op basis van een non-argument.
[/quote]
God....
Dit is dan inderdaad een druppel op de gloeiende plaat, maar ik heb wel een vaker inefficiente scripts gezien (maatje groter dan dit) die toch wel wat veel geheugen verbruikten, mede door zulk inefficiënte opbouw.
Wat heeft God hier mee te maken? Sommigen geloven dat God jou op de aardkloot heeft gezet, maar volgens mij kan hij in dit topic weinig betekenen.
- Aar - op 27/05/2011 01:28:26
Dit is dan inderdaad een druppel op de gloeiende plaat, maar ik heb wel een vaker inefficiente scripts gezien (maatje groter dan dit) die toch wel wat veel geheugen verbruikten, mede door zulk inefficiënte opbouw.
Nogmaals: Het is opbouwende kritiek.
Opbouwende kritiek is niet verkeerd, maar er zit een wereld van verschil tussen iets als foutief betitelen of "het beter anders kunnen doen". Aangeven dat het teruggeven van de waarde van mysql_real_escape_string aan een variabele fout is, is gewoon grote onzin. Dat het niet handig is, daar ben ik het mee eens.
Het komt heel vaak voor dat functies worden toegepast voor de eenvoud, ook al gebruikt het meer geheugen zoals jullie aangeven (wat totaal te verwaarlozen valt als je bijvoorbeeld gebruik maakt van een database, aangezien daar in de meeste gevallen veel meer eer te behalen valt ten aanzien van de snelheid).
Ik moet de topicstarter nageven dat hier vaak om de hete brei wordt heen gedraaid!