我不知道如何用pdo搜索匹配的行

时间:2014-01-24 23:53:50

标签: php mysql database pdo username

我遇到了pdo和php的问题,因为我是一个PHP菜鸟,不知道多少。我正在尝试连接到数据库(我做了),然后在查询(或其他东西)中搜索匹配的字符串。基本上,用户无法使用相同的用户名创建帐户。这是连接代码。

$conn = new PDO("mysql:host=localhost;dbname=users;","root","");

,这是无效的确认码:(

                $sql = 'SELECT username FROM users ORDER BY username';
            foreach ($con->query($sql) as $row) {
                if($username1 !== $row['username']) {
                    $acceptCounter++;
                    $username = $_GET['username'];
                }
            }

请帮帮我:)。

1 个答案:

答案 0 :(得分:0)

我有几个建议。

  1. 首先,在users表中添加一个唯一索引,如下所示:
    ALTER TABLE users ADD UNIQUE(username)
    在此之后,您不必担心名称重复:mySQL会抛出错误(但请小心并妥善处理错误)。
  2. 根据评论中的建议使用WHERE子句。因此,您不需要遍历大量行来查找单行。
  3. 使用参数化查询和预准备语句。当你使用PDO(我相信,你可以用PHP和MySQL做的最好的事情之一)时,这应该不是一件难事。因此,您将从(大多数)SQL注入中获得安全保障。
  4. 使用PDO->fetch()PDO->fetchAll()。循环中的查询是一件非常糟糕的事情,因为这会减慢整个网站的速度。