Я новичок в PDO, который использовал mySQL в прошлом. Я создал отдельный файл для подключения к базе данных.
<?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
Что я делаю не так? Я бы очень признателен за любую помощь.
Вы должны использовать то, что вы установили, и это $db
, а не $pdo
:
$db= new PDO
Abd также, вы не добавили ваш именованный placeholder в запрос:
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);