PDO检索表数据 [英] PDO retrieve table data
问题描述
我是过去使用过MySQL的PDO的新手.我创建了一个单独的文件以连接到数据库.
I'm new to PDO having used mySQL in the past. I have created a seperate file to connect to the database.
<?php
$dbHost='localhost';
$databaseName='dm_projectdb';
$username='blah';
$password='blah';
$db= new PDO("mysql:host=$dbHost; dbName=$databaseName;
charset=utf8", "$username","$password");
$db->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
?>
在另一个文件中,我试图检索并打印该表.
And in another file im trying to retrieve and print the table.
<?php
require_once('connect.php');
$sql= "SELECT CourseID, Course_Name FROM coursename WHERE CourseID = 1";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':CourseID', $CourseID, PDO::PARAM_INT);
$stmt->execute();
?>
该表称为带有课程名和课程ID行的课程名.
当我运行它时,我得到Notice: Undefined variable: pdo in N:\ftp\project\comparison.php on line 44
The table is called coursename with Course_Name and CourseID rows.
When I run this I get Notice: Undefined variable: pdo in N:\ftp\project\comparison.php on line 44
和
Fatal error: Call to a member function prepare() on a non-object in N:\ftp\project\comparison.php on line 44
我做错了什么?我将非常感谢您的帮助.
What am I doing wrong? I would really appreciate any help.
推荐答案
您应使用设置的值,即$db
,而不是$pdo
:
You should use what you have set, and that is $db
, not $pdo
:
$db= new PDO
同样,您也没有在查询语句上添加命名的占位符:
Abd also, you didn't add your named placeholder on the query statement:
CourseID = :CourseID
所以最后:
require 'connect.php';
$sql = "SELECT CourseID, Course_Name FROM coursename WHERE CourseID = :CourseID";
$stmt = $db->prepare($sql);
$stmt->bindParam(':CourseID', $CourseID, PDO::PARAM_INT);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($results);
在connect.php
中:
$dbHost ='localhost';
$databaseName ='dm_projectdb';
$username ='blah';
$password ='blah';
$db= new PDO("mysql:host=$dbHost;dbname=$databaseName;charset=utf8", $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
这篇关于PDO检索表数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!