On Mon, Sep 19, 2011 at 18:11, Reindl Harald <h.rei...@thelounge.net> wrote: > it is not because it is clear that it is sanitized instead hope and pray > thousands of layers somewhere else did it - for a inline-query the best > solution, if you are using a framework you will never have the "insert into" > at this place! > > what i meant as ugly is that you are somewhere writing an inline-query and > are not sure if it is a number or not - so it is NOT sanitized before > because if you tell me it is you sanitze does not work if you get a > non-integer > at this point and you sanitze-method has to throw the error long before > if it is really working >
Best of both worlds: $username=$_POST['username']; // do some stuff with username here $M=array(); // Array of things to be inserted into MySQL $M[username]=mysql_real_escape_string($username); // Everything that goes into $M is escaped $query="INSERT INTO table (username) VALUES ('{$M[username]}')"; The resulting SQL query is easy to read, and I know that everything is escaped. No operations are ever to be performed on $M. I need to look into a way of making it immutable (add and read only). I could do it with an object but I prefer an array. Actually, an array wrapped in an object could perform the escaping itself, making me doubly sure that some other dev didn't forget to escape while playing with the code. By the way, I've never gotten a godd explanation about why to wrap the variables in PHP MySQL queries with curly brackets. I don't even remember where I picked up the habit. Does anybody here know? -- Dotan Cohen http://gibberish.co.il http://what-is-what.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql?unsub=arch...@jab.org