使用 PDO 从 class 获取数组
Fetch Array from class with PDO
你好我想看看是否有人可以帮助我解决以下问题。我正在使用 PDO 从数据库中选择一些结果,SQL 查询位于 /class/functions.php 内的 class 文件中。问题是我无法让它在表单内的 php 文件中显示结果。
这是我在 class/functions.php:
中使用的 SQL 查询
class Users {
public function selecttema() {
try{
$con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM topics";
$stmt = $con->prepare( $sql );
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
}catch (PDOException $e) {
echo $e->getMessage();
}
}}
之后,在外部文件上,我尝试使用以下代码显示来自该查询的信息:
<?php
$select = new Users;
$select->selecttema();
while( $row = $stmt->fetch()){
echo '<option value="' . $row['id'] . '">' . $row['topic'] . '</option>';
} ?>
我收到以下错误:
注意:未定义变量:stmt in E:\xampp\htdocs\doccms\add_doc.php on line 83
致命错误:在第 83 行
中的 E:\xampp\htdocs\doccms\add_doc.php 中调用成员函数 fetch() 为空
欢迎任何帮助。谢谢!
变量 $stmt
是函数的局部变量。您需要 return 值:
public function selecttema() {
try{
$con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM topics";
$stmt = $con->prepare( $sql );
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
return $stmt;
}catch (PDOException $e) {
echo $e->getMessage();
return false;
}
}
然后在调用者中使用它:
$statement = $select->selecttema();
while ($row = $statement->fetch()) {
echo '<option value="' . $row['id'] . '">' . $row['topic'] . '</option>';
}
你好我想看看是否有人可以帮助我解决以下问题。我正在使用 PDO 从数据库中选择一些结果,SQL 查询位于 /class/functions.php 内的 class 文件中。问题是我无法让它在表单内的 php 文件中显示结果。
这是我在 class/functions.php:
中使用的 SQL 查询class Users {
public function selecttema() {
try{
$con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM topics";
$stmt = $con->prepare( $sql );
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
}catch (PDOException $e) {
echo $e->getMessage();
}
}}
之后,在外部文件上,我尝试使用以下代码显示来自该查询的信息:
<?php
$select = new Users;
$select->selecttema();
while( $row = $stmt->fetch()){
echo '<option value="' . $row['id'] . '">' . $row['topic'] . '</option>';
} ?>
我收到以下错误:
注意:未定义变量:stmt in E:\xampp\htdocs\doccms\add_doc.php on line 83
致命错误:在第 83 行
中的 E:\xampp\htdocs\doccms\add_doc.php 中调用成员函数 fetch() 为空欢迎任何帮助。谢谢!
变量 $stmt
是函数的局部变量。您需要 return 值:
public function selecttema() {
try{
$con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM topics";
$stmt = $con->prepare( $sql );
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
return $stmt;
}catch (PDOException $e) {
echo $e->getMessage();
return false;
}
}
然后在调用者中使用它:
$statement = $select->selecttema();
while ($row = $statement->fetch()) {
echo '<option value="' . $row['id'] . '">' . $row['topic'] . '</option>';
}