使用PDO从表的一列中获取值


Fetch values from one column of a table with PDO

我试图从MySQL数据库的一个表列中获取值PHP (PDO),但我在同一行有两个错误,这是行(第7行):

$query = $dbh->prepare("SELECT * FROM table_name");

这些是错误信息:

注意:未定义变量:dbh in…第7行

致命错误:在非对象中调用成员函数prepare()第7行

我的完整代码:

1) file config.php
    <?php
$host = "localhost";
$db_user = "user";
$db_psw = "pass";
$db_name = "database";
?>
2) file connection.php
<?php
       include("config.php");
        //collegamento
    $col = "mysql:host=$host;dbname=$db_name";
        try {
                  //tentativo di connessione
          $db = new PDO($col , "$db_user", "$db_psw");
        }
                    //gestione errori
            catch(PDOException $e) {
              echo 'Attenzione errore: '.$e->getMessage();
            }      
?>

3)文件 display-values.php (误差在第7行)

<?php
// richiamo lo script responsabile della connessione a MySQL
require 'connection.php';
?>
<?php
$query = $dbh->prepare("SELECT * FROM table_name");
$query->execute();
$result = $query->fetchall();
?>
<?php
    echo 
    "<table border='2'>
    <tr>
    <th>ID</th>
    <th>A Number</th>
    <th>First Name</th>
    <th>Last Name</th>
    <th>Why</th>
    <th>Comments</th>
    <th>Signintime</th>
    </tr>"
    ;
    foreach($result as $row)
    {
  echo "<tr>";
  echo "<td>" . $row['id'] . "</td>";
  echo "<td><a href=Student.php?studentA_num=" . $row['anum'] . ">" .$row['anum'] . " </a></td>";
  echo "<td>" . $row['first'] . "</td>";
  echo "<td>" . $row['last'] . "</td>";
  echo "<td>" . $row['why'] . "</td>";  
  echo "<td>" . $row['comments'] . "</td>";
  echo "<td>" . $row['signintime'] . "</td>";
  echo "<td> <input type='"button'" value='"Start Session'"onClick='accept.php?id=" . $row['id'] . "&start=true></td>";
}
  echo "</tr>";
  echo "</table>";
?>

注意:在这段代码中,我试图获取所有值(只是为了测试),但我需要从一个列"name_column"中获取数据,所以我怎么能修复这两个错误并编辑代码以从特定列提取值?

提前感谢!

您的PDO对象是db而不是dbh

错误提示:

注意:未定义变量:dbh in…第7行

PHP找不到一个初始化的名为dbh的变量,所以dbh是一个未定义的变量,因此你在这里有你的注意。

致命错误:在非对象中调用成员函数prepare()第7行

当你的代码在一个不存在的变量上调用一个方法时,PHP会提示第二个错误。

总之,你只需要修改

$query = $dbh->prepare("SELECT * FROM table_name");

$query = $db->prepare("SELECT * FROM table_name");

编辑获取2列值的查询:

如果您只想获取2列的值,只需更改SQL查询:

$query = $db->prepare("SELECT column_name_1, column_name_2 FROM table_name");

在这个查询中,你选择了column_name_1column_name_2

中的值

我建议你学习一些基本的SQL教程

使用$db代替$dbh。因为在connection.php中,您将数据库连接链接保存在$db中,而在display-values.php中,您使用$dbh执行查询。所以试着用$db代替$dbh