* Mayo <[EMAIL PROTECTED]>:
> I'm new to PHP and would like to make certain that I have the basic
> protection for the site:
>  
> Use double quotes to contain variable

This depends entirely on the variable type expected by MySQL; int and
floats don't necessarily need quotes. However, it's typically a good
practice.

> Use mysql_escape_string so that query is considered part of the WHERE
> clause.

If you're on PHP >=4.3.0, use mysql_real_escape_string().

> $result=mysql_query('SELECT * FROM users WHERE
> username="'.mysql_escape_string($_GET['username']).'"');
>  
> I'm pulling prices from a database and sending the item ID which has 4
> characters (1001, 1002, etc.)
>  
> Is the following unnecessary with mysql_escape_string?
>  
> if (preg_match("/^\w{4,4}$/", $_GET['username'], $matches))
>    $result = mysql_query("SELECT * FROM items WHERE
> itemID=$matches[0]");
>  else // we don't bother querying the database
>    echo "itemID not accepted";

It's *always* better to filter your data before placing it in your
database. Check to see if the data is of the correct type and/or falls
within the correct range of values allowed for the field it will occupy.
Doing this will help keep your data normalized and prevent headaches
later on.

By the way, if you want some best practices for escaping data before
placing into a database, the manual page for mysql_real_escape_string
has some examples:

    http://php.net/mysql_real_escape_string

-- 
Matthew Weier O'Phinney           | WEBSITES:
Webmaster and IT Specialist       | http://www.garden.org
National Gardening Association    | http://www.kidsgardening.com
802-863-5251 x156                 | http://nationalgardenmonth.org
mailto:[EMAIL PROTECTED]         | http://vermontbotanical.org

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to