ID:               15673
 Updated by:       [EMAIL PROTECTED]
-Summary:          Quotes crash MySQL queries: $array['val'] = Parse
                   Error, but  $array[val] works
 Reported By:      [EMAIL PROTECTED]
 Status:           Analyzed
 Bug Type:         Arrays related
 Operating System: Linux 2.4.5
 PHP Version:      4.1.1
 New Comment:

Yes, I get you get a NOTICE warning when you use $array[key] (because
key will be an undefined constant and therefore evaluate to a string).

Try with error_reporting(E_ALL); before using this syntax.


Previous Comments:
------------------------------------------------------------------------

[2002-02-22 07:25:35] [EMAIL PROTECTED]

Hey man WOW, Im impressed, you have already replied!!!

Yes, this solution works:

$query = "SELECT * from {$table['users']}";

But shouldn't "Blah $table['users']" work as well?

Shouldn't PHP at least send a warning when using "$table[users]" even
if the other "$arr['foo']" syntaxes where wrong?

Thanks!

------------------------------------------------------------------------

[2002-02-22 07:17:21] [EMAIL PROTECTED]

Use the {$array['key']} syntax as I told you.

However, I can't remember if "foo $array['bar']" ever worked or not
right now. Someone else?

------------------------------------------------------------------------

[2002-02-22 07:12:54] [EMAIL PROTECTED]

It seems we cannot use the correct syntax $table['users'] inside the
two ""...

This will work:
$result = mysql_query("SELECT * from ".$table['users']);

This wont work:
$result = mysql_query("SELECT * from $table['users']");

This will, but should send a warning and it isnt:
$result = mysql_query("SELECT * from $table[users]");

The errors happens everywere I call any array with the '' or "" like
$table["something"] or $table['something'] inside ""s...

------------------------------------------------------------------------

[2002-02-22 07:06:12] [EMAIL PROTECTED]

Sorry: The error occurs when we define the $query:

$query = "SELECT * from $table[users]"; // => This causes the parse
error

echo "Table $table['users']" //=> Parse Error too
echo "Table".$table['users']; //=>OK
$query = "SELECT * from ".$table['users']; //=> OK TOO

------------------------------------------------------------------------

[2002-02-22 06:59:46] [EMAIL PROTECTED]

d

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/15673

-- 
Edit this bug report at http://bugs.php.net/?id=15673&edit=1

Reply via email to