[英]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_1和column_name_2中选择值
我建议您参加一些基本的SQL教程
使用$db
代替$dbh
。 因为在connection.php
您将数据库连接链接保存在$db
而在display-values.php
,则使用$dbh
执行查询。 因此,尝试使用$db
而不是$dbh
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.