PHP以小写检索列

时间:2012-10-08 02:24:44

标签: php mysql database pdo

  

可能重复:
  PHP PDO Username Availability Checker

我有一个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进行比较?感谢

3 个答案:

答案 0 :(得分: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. 现在比较结果

答案 1 :(得分:0)

您可以使用

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

作为查询,但这将使您获得索引的好处。

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

答案 2 :(得分:0)

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