2014-11-27 3 views
1

Я новичок в PDO, использующем mySQL в прошлом. Я создал отдельный файл для подключения к базе данных.PDO получить данные таблицы

<?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); 
      ?> 

И в другом файле, пытающемся извлечь и распечатать таблицу.

<?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(); 

?> 

Стол называется courseame с номерами Course_Name и CourseID. Когда я запускаю это я получаю 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

Что я делаю неправильно? Я бы очень признателен за любую помощь.

+0

должен быть '$ db' не' $ pdo' – Ghost

ответ

0

Вы должны использовать то, что вы установили, и это $db, не $pdo:

$db= new PDO 

Абд также, вы не добавить именованный заполнитель на оператора запроса:

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); 
+0

Просто попробовал то, что вы сказали, и удалить его ошибку, но я получаю «Фатальная ошибка: Uncaught исключение„PDOException“с сообщением«SQLSTATE [3D000]: Недопустимое имя каталога: 1046 База данных не выбрана 'в N: \ ftp \ compc \ d10mcfm \ project \ compare.php: 44 Трассировка стека: # 0 N: \ ftp \ compc \ d10mcfm \ project \ compare.php (44): PDO -> подготовить ('SELECT CourseID ...') # 1 {main}, брошенный в ошибке N: \ ftp \ project \ compare.php on line 44 ". Есть идеи? Спасибо – mkra

+0

@mkra вы забыли включить файл подключения? – Ghost

+0

Да, я сделал; теперь нет ошибок, но вместо печатаемой таблицы он говорит «Массив() <» на веб-сайте – mkra

Смежные вопросы