-1

可能重复:
PHP PDO 用户名可用性检查器

我有一个 php 脚本来检查用户名的可用性(如果它已经被使用了)。但是我想比较用户输入的用户名和数据库中小写的用户名。我已经将输入输入为小写,但是如何将检索到的列设为小写。这是php脚本

<?php 
    $usr = strtolower($_GET['username']);
    $link = new PDO('mysql:host=***;dbname=***;charset=UTF-8','***','***');
    $usr_check = $link->prepare("SELECT * FROM Conference WHERE Username = :usr");
    $usr_check->bindParam(':usr', $usr);
    $usr_check->execute();
    if($usr_check->rowCount()>0)
        echo "false";
    else
            echo "true";
?>

如何将用户名列设置为小写,然后将其与$usr?谢谢

4

3 回答 3

1

请试试

 SELECT * FROM Conference WHERE LOWER(Username) = :usr

http://www.sqlinfo.net/mysql/mysql_function_upper_lower.php

好的,正如您在下面的评论中所说,我建议您执行以下操作。

  1. 将结果转换为小写http://sqlfiddle.com/#!2/bd50e/1

  2. 使用 strtolower 将您的比较字符串转换为小写

  3. 现在比较结果
于 2012-10-08T02:27:53.830 回答
0

你可以使用

SELECT * FROM Conference WHERE LOWER(Username) = :usr

作为查询,但这会使您失去索引的好处。

但是,如果列使用“ci”排序规则,则比较无论如何都应该不区分大小写。

于 2012-10-08T02:29:25.233 回答
0

如果要在 MySQL 中将字符串转换为较低的值,请使用 LOWER(str) 函数。

于 2012-10-08T02:29:29.943 回答