繁体   English   中英

使用PDO从表的一列获取值

[英]Fetch values from one column of a table with PDO

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

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

这些是错误消息:

注意:未定义的变量:dbh in ...在第7行

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

我完整的代码:

1)文件config.php

    <?php
$host = "localhost";

$db_user = "user";

$db_psw = "pass";

$db_name = "database";
?>

2)文件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是未定义的变量,因此请注意此处。

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

当您的代码在不存在的变量上调用方法时,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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM