这个查询有什么问题? (MySQL的)

时间:2010-01-20 13:27:11

标签: php mysql

$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]' ";

错误是:

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

没关系,这个问题已经解决了。

6 个答案:

答案 0 :(得分:13)

额外引用:

'$_POST['meta_auth]'

当然还有:

答案 1 :(得分:2)

试试这种方式,

    $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
    ";

如果你没有把某些条件放在哪里,你将使用相同的数据集更新所有数据集

答案 2 :(得分:0)

$_POST[key_name]必须为".$_POST['key_name']."

答案 3 :(得分:0)

$ 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]'“;

答案 4 :(得分:0)

如果您在双引号字符串中使用数组变量,则需要将它们括在{}中,如{$ _POST ['meta']}。

但正如Jensgram指出的那样,这种方法极易受到注射。

答案 5 :(得分:0)

只是一个想法。我从不使用单引号括起来的$ _POST。