On Thu, 2008-03-20 at 09:22 -0700, Lamp Lists wrote:
> hi,
> I saw several times that some people use this
>  
> $parameters = array(
>   'param1' => "{$_POST["param1"]}",
>   'param2' => "{$_POST["param2"]}"
>  );

Ignorance.

> or
> 
>  $query = mysql_query("SELECT * FROM table1 WHERE id='{$session_id}'");

Ignorance/Habit since you only need to do that if the context of the
variable is ambiguous... for instance:

   $something = "Something blah $blehblah blah blah".

When what was really wanted was:

   $something = "Something blah {$bleh}blah blah blah".

One would hope that in the example you provided the developer properly
escaped $session_id.

> I would use:
> 
> $parameters = array(
>   'param1' => $_POST["param1"],
>   'param2' => $_POST["param2"]
>  );

I sure would too (although I'd use single quotes for the array indices).
I'd also append a dangling , to that last array entry to make it
simplistic to add another entry and never worry about having to add a ,
to the previous entry. The following is perfectly legal in PHP and is an
intentional feature:

$parameters = array
(
    'param1' => $_POST['param1'],
    'param2' => $_POST['param2'],
);
 
>  and
> 
>  $query = mysql_query("SELECT * FROM table1 WHERE id=' ".$session_id."
> ' ");

That's broken unless you're relying on a MySQL type conversion trick to
match the session ID since you've prepended and appended the id match
with spaced. You probably meant to type:

    "SELECT * FROM table1 WHERE id='".$session_id."' "

In that case, I normally do similar for queries, except mine look more
like:

    "SELECT * FROM table1 WHERE id=".$db->quote( $session_id )." "

Where the quote() method performs both the quoting and the escaping.

> does it really matter? is there really difference or these are just two 
> "styles"?

It matters greatly if it's incorrect :) Otherwise it matters less so but
one is more efficient than the other. There's absolutely no reason to
interpolate a value if the value is the variable's value itself.

Cheers,
Rob.
-- 
http://www.interjinn.com
Application and Templating Framework for PHP


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

Reply via email to