【问题标题】:Ensuring emails are lower case when searching/inserting/updating MySQL database with PHP PDO使用 PHP PDO 搜索/插入/更新 MySQL 数据库时确保电子邮件是小写的
【发布时间】:2012-09-17 04:28:24
【问题描述】:

我正在使用 PHP 的 PDO 与 MySQL 数据库进行交互。我目前正在使用以下代码来确保电子邮件地址始终为小写,以确保在插入/更新时没有重复或在搜索时找到电子邮件。

有人能告诉我这种方式是否可行,还是使用 SQL 或 PHP 转换为小写的方式更好?

$sql = "UPDATE table SET name=:name, LOWER(email)=:email WHERE id = :id";
$st->bindValue(":email", strtolower($this->email), PDO::PARAM_STR);

【问题讨论】:

  • 我认为这没有什么问题(除了我总是使用 UPPER() 没有特别的原因来解决同样的问题;-))
  • 如果您选择使用 SQL 版本,这是正确的:$sql = "UPDATE table SET name=:name, email = LOWER(:email) WHERE id = :id";

标签: php mysql sql pdo lowercase


【解决方案1】:

您不能写信给LOWER(email),这也是不必要的,因为无论如何您总是通过 PHP 插入小写版本。只需将其更改为email

【讨论】:

    【解决方案2】:

    最好的方法是在将数据输入数据库之前始终准备好数据。所以换句话说,所有的情况都在 php 中改变。

    在这种情况下,您可以使用:

    strtolower($str)

    我看到你在使用它,这很完美。这很好,你可以在这里停下来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多