首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示具有特定列值的MySQL表中的所有行?

问如何显示具有特定列值的MySQL表中的所有行?
EN

Stack Overflow用户
提问于 2014-12-18 02:46:57
回答 1查看 1K关注 0票数 2

我试图使用PHP输出MySQL表的所有行,但我只想输出code_author列具有特定值的行。我在网上研究了几个小时,但我只能输出所有行(而不是根据列是否有值进行筛选)。

只有当code_author列与登录者的作者匹配时,才应该输出行,因此变量$phpro_username已经提取了用户名。下面的代码输出以下内容: SQLSTATEHY093:无效参数编号:没有绑定参数。但是,如果我删除了WHERE code_author = :$phpro_username部分,它确实可以很好地输出所有行,但这不是我想要实现的。知道怎么解决这个问题吗?

代码语言:javascript
复制
$dbh = new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password);
$stmt2 = $dbh->prepare("SELECT * FROM qr_codes WHERE code_author = :$phpro_username");
try {
    $stmt2 = $dbh->prepare("SELECT * FROM qr_codes");
    $stmt2->execute();
    $result = $stmt2->fetchAll();

    if ( count($result) ) { 
        foreach($result as $row) {
            print_r($row);
        }   
    } 
    else {
        echo "No rows returned.";
    }
} 
catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-18 02:48:28

PDO对象的初始化是提供数据源名称和用户凭据。

代码语言:javascript
复制
$dbh = new PDO('mysql:host=localhost;dbname=database_name', 'username', 'password');

你不应该在语句准备中使用插值变量。你应该放一个有名字的地名持有者:

代码语言:javascript
复制
$stmt2 = $dbh->prepare("SELECT * FROM qr_codes WHERE code_author = :phpro_username");
$stmt2->bindParam(':phpro_username', $phpro_username);
$stmt2->execute();

然后用你的抓取来跟进:

代码语言:javascript
复制
$results = $stmt2->fetchAll(PDO::FETCH_ASSOC);
print_r($results);
foreach($results as $row) {
    echo $row['your_column_name'];
    // and others
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27538452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档