tags:

views:

105

answers:

6
$sql = "UPDATE site_ayarlar 
 SET site_baslik = '$_POST[site_baslik]',
  site_slogan = '$_POST[site_slogan]', 
  meta_desc = '$_POST[meta_desc]',
  meta_key = '$_POST[meta_key]',
  meta_auth = '$_POST[meta_auth]',
  meta_copy = '$_POST[meta_copy]', 
  meta_robots = '$_POST[meta_robots]' ";

and error is

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

UPDATE FIXED!

A: 

$_POST[key_name] must be ".$_POST['key_name']."

antpaw
Not necessarily (http://php.net/manual/en/language.types.string.php). At least not in this specific case. I *do* agree with you on this one, but it's a matter of preference. It seems to me that OP has more important things to worry about :)
jensgram
+12  A: 
Quassnoi
+1 For proper XKCD use :)
Martijn
A: 

$sql = "UPDATE site_ayarlar SET site_baslik = '$_POST[site_baslik]', site_slogan = '$_POST[site_slogan]', meta_desc = '$_POST[meta_desc]', meta_key = '$_POST[meta_key]', meta_auth = '$_POST[meta_auth]', meta_copy = '$_POST[meta_copy]', meta_robots = '$_POST[meta_robots]' ";

sameer karjatkar
A: 

if you are using array variables inside a double-quoted string you need to enclose them in {} like this {$_POST['meta']}.

But as Jensgram pointed out, this approach is extremely vulnerable to injections.

Ken
+2  A: 

Try this way,

    $site_baslik = mysql_real_escape_string($_POST['site_baslik']);
    $site_slogan = mysql_real_escape_string($_POST['site_slogan']);
    $meta_desc = mysql_real_escape_string($_POST['meta_desc']);
    $meta_key = mysql_real_escape_string($_POST['meta_key']);
    $meta_auth = mysql_real_escape_string($_POST['meta_auth']);
    $meta_copy = mysql_real_escape_string($_POST['meta_copy']);
    $meta_robots = mysql_real_escape_string($_POST['meta_robots']);

    $sql = "UPDATE site_ayarlar 
        SET site_baslik = '$site_baslik' ,
          site_slogan = '$site_slogan', 
          meta_desc = '$meta_desc',
          meta_key = '$meta_key',
          meta_auth = '$meta_auth',
          meta_copy = '$meta_copy', 
          meta_robots = '$meta_robots' 

        WHERE some_condition
    ";

and if you dont put some where condition, you will update all your db with the same data set

marvin
A: 

Just a thought. I never use $_POST enclosed in single quotes.

RPK