更新电子邮件地址表问题

时间:2010-07-20 23:03:32

标签: php mysql

我正在尝试通过php更新Mysql中的电子邮件字段。 我不断收到此错误:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@yahoo.com,

Mysql中的单元格是varchar(100)。 电子邮件地址是从文本框中输入的。

$insert_fbacc="UPDATE jos_users SET email=".$_POST['email']", WHERE id='$user->id'";

使用上面的代码,mysql只更新了电子邮件地址的一半,只更新了@yahoo.com部分。

我试图将$ _POST ['email']转换为字符串,结果是我写的错误。

编辑:

谢谢你们,你们真棒!

我发现它是什么......语法不好而忘了逃避。

非常感谢!

4 个答案:

答案 0 :(得分:3)

我看到三个错误:

  • 字符串值必须用引号括起来:

    $insert_fbacc="UPDATE jos_users SET email='".$_POST['email']"', WHERE id='$user->id'";
    //                                     ---^               ---^                               
    
  • 缺少字符串连接:

    $insert_fbacc="UPDATE jos_users SET email='".$_POST['email']."', WHERE id='$user->id'";
    //                                                       ---^
    
  • 删除逗号:

    $insert_fbacc="UPDATE jos_users SET email='".$_POST['email']."'  WHERE id='$user->id'";
    //                                                          ---^
    

如前所述,不要忘记使用mysql_real_escape_string()

答案 1 :(得分:1)

始终逃避输入:

$insert_fbacc="UPDATE jos_users SET email='".mysql_real_escape_string($_POST['email'])."' WHERE id='".mysql_real_escape_string($user->id)."'";

答案 2 :(得分:0)

在那个确切的查询字符串中,我可以看到一个问题。

$insert_fbacc="UPDATE jos_users SET email=".$_POST['email']", WHERE id='$user->id'";

您需要添加'。'在$ _POST ['email']之后,据我所知,做出:

$insert_fbacc="UPDATE jos_users SET email=" . $_POST[ 'email' ] . ", WHERE id='$user->id'";

不要忘记逃避角色!

答案 3 :(得分:0)

实际上,您似乎在代码中有语法错误($_POST['email']之后没有点。)

变量本身没有引号括起来。 它应该是:

$insert_fbacc="UPDATE jos_users SET email='{$_POST['email']}', WHERE id='$user->id'";

另外,不要忘记使用mysql_real_escape_string转义变量:

$_POST['email'] = mysql_real_escape_string($_POST['email']).