【问题标题】:Inserting an email address into a table field将电子邮件地址插入表格字段
【发布时间】:2011-03-31 19:59:27
【问题描述】:
// write student record
$query = "INSERT INTO Student (SLastName, SFirstName, SeMail, SGrade, SPhone, SCell, SLunch)".
" VALUES ($LastName, $FirstName, $email, $grade, $phone, $cell, $lunch)";
echo $query . '<br />';
$result = mysql_query($query);
if (!$result)
     die("Error inserting Student record: ". mysql_error());

INSERT INTO Student (SLastName, SFirstName, SeMail, SGrade, SPhone, SCell, SLunch)
VALUES (Weiner, Wendy, somemail@gmail.com, 12, 2123334444, 8458765555, 5)

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“@gmail.com, 12, 2123334444, 8458765555, 5)” 附近使用正确的语法

服务器版本:5.0.91-community

【问题讨论】:

    标签: email mysql


    【解决方案1】:

    您正在邀请来自 little Bobby Tables 的访问,方法是使用 SQL 查询中未转义的用户提供的数据。

    要么使用mysql_real_escape_string 对输入进行去齿,要么使用PDO 做得更好。

    【讨论】:

      【解决方案2】:

      不应该是这样的

      INSERT INTO Student (SLastName, SFirstName, SeMail, SGrade, SPhone, SCell, SLunch)
      VALUES (Weiner, Wendy, 'somemail@gmail.com', 12, 2123334444, 8458765555, 5)
      

      我。 e.用引号括起来的电子邮件地址?

      【讨论】:

      • 您也需要将其他字符串放在引号中(尽管贬低您的人有点刻薄。)
      【解决方案3】:

      您需要将值用引号括起来:

      $query = "INSERT INTO Student (SLastName, SFirstName, SeMail, SGrade, SPhone, SCell, SLunch)". " VALUES ('$LastName','$FirstName','$email', '$grade', '$phone', '$cell', '$lunch')";

      【讨论】:

      • 嗯,我也想知道。另一个答案也一样,似乎有点刺耳。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      相关资源
      最近更新 更多