php SQL 选择查询不起作用

标签 php html mysql database

我正在尝试在本地主机上查询我的 MySQL 数据库。我想要做的就是查看用户的 $name 是否等于我的 db 中 'userName' 列中的任何值。如果是就说是,否则就说不是。

我的代码:

try 
    {
        $conn = new PDO("mysql:host=$servername;dbname=datab", $username, $pass);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        //echo "Connected successfully"; 
            $sql = 'SELECT passWord FROM datab WHERE userName = '$name''; 

            $res = $conn->query($sql)
            if($res>0)
            {
                echo "user found";
            }
            else
            {
                echo "not in db";
            }

    }

最佳答案

如果您使用 PDO,那么使用准备好的语句也是明智之举,这样可以避免潜在的注入(inject)或不需要的错误。

引用代码:

try 
{
    $conn = new PDO("mysql:host=$servername;dbname=datab", $username, $pass);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //echo "Connected successfully"; 

    $sql = 'SELECT passWord FROM datab WHERE userName = :name'; 

    $stmt = $conn->prepare($sql); // Prepare

    $stmt->bindValue(':name', $name);

    $stmt->execute();

    $result = $stmt->fetchAll();

    if(count($result))
    {
        echo 'User found';
    }
    else
    {
        echo 'User not found';
    }
}
catch(PDOException $e)
{
    echo $e->getMessage();
}

关于php SQL 选择查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018927/

相关文章:

php - array_diff 是比较具有 10,000 个条目的列的好方法吗?

php - Eclipse 完成 - @var (PHPDoc) 问题

php - 多语言php脚本

html - 通过内容在同一个 DIV 中显示图像和文本

html - html中的元素对齐

MySQL 5.7 - JSON 索引 - 生成具有非标量值的列

php - 如何在mysql中获取左表中的总记录和右表中的匹配记录

php - Wordpress 帖子不会彼此相邻显示

javascript - 如何使用排序数组填充下拉菜单

Mysql - 联合显示表?