Ich habe einige Probleme mit einer SQL-Anweisung.PHP: Kann nicht auf Klasse in SQL-Anweisung zugreifen
'id_dozent = $ dozent-> ID' das funktioniert nicht und ich weiß nicht warum. Wenn ich eine Zahl wie '1' einfüge, funktioniert es wie erwartet.
Weiß jemand, was ich falsch mache?
Vielen Dank! :-)
Edit1: Voll Code:
<?php
require_once("Manager.php");
require_once("Vorlesung.php");
require_once("Dozent.php");
require_once("DozentManager.php");
class VorlesungManager extends Manager
{
protected $pdo;
public function __construct($connection = null)
{
parent::__construct($connection);
}
public function __destruct()
{
parent::__destruct();
}
public function findAll()
{
try {
$stmt = $this->pdo->prepare('
SELECT * FROM vorlesung WHERE "id_dozent = $dozent->id";
');
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, 'Vorlesung');
return $stmt->fetchAll();
} catch (PDOException $e) {
echo("Fehler! Bitten wenden Sie sich an den Administrator...<br>" . $e->getMessage() . "<br>");
die();
}
}
http://php.net/manual/de/pdo.error-handling.php - http://php.net/manual/en/function.error-reporting.php –
Wo sind '$ dozent' und '$ dozent-> id' definiert/gesetzt? – VolkerK
1) einfache Anführungszeichen sind * nicht * interpoliert 2) schreiben korrekten Code, [mit Platzhaltern] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq = 1) (und dieses "Problem" vollständig vermeiden) – user2864740