我试图从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_1和column_name_2
中的值我建议你学习一些基本的SQL教程
使用$db
代替$dbh
。因为在connection.php
中,您将数据库连接链接保存在$db
中,而在display-values.php
中,您使用$dbh
执行查询。所以试着用$db
代替$dbh
。