fremdschlüsseln erstellen mit PDO

Hallo,

ich bin einen neulinge im PHP. Ich habe eine 1 zu n Beziehung zwischen 2 Klassen und ich möchte bei der Klasse(Frageabschnitt) wo n ist die fremdschlüssel von der Klasse(Fragebogen) mitnehmen.
Wie kann ich das im PHP machen?

Meine Pseudocode:

<?php class Frageabschnitt{
private $dbh; private $statement; private $stmt; public function \_\_construct() { require\_once '/db\_connection.php'; $db = new ConnectionFactory(); if(isset($db)) $this-\>dbh = $db-\>getConnection(); else echo " **Fehler im Konstruktor**"; } public function frageabschnittEinfuegen($thema, $titel, $datum, $kommentar) { //ICH BEKOMME HIER EINE FEHLER if ($row = $this-\>stmt-\>pruefFragebogen($titel, $datum, $kommentar)) { if (!$statement=$this-\>dbh-\>prepare('INSERT INTO frageabschnitt (idfragebogen, titel) VALUES (:blush:row, :titel)')) { throw new Exception ('PDO::stuck\_out\_tongue:repare fehlgeschlagen!'); } if (!$statement-\>bindParam(':titel',$titel)) { throw new Exception ('PDOStatement::bindParam fehlgeschlagen!'); } if(!$statement-\>execute()){ throw new Exception('PDOStatement::execute fehlgeschlagen'); } } else{ echo 'Fatal Error!'; } } public function pruefFragebogen($titel, $datum, $kommentar) { $fragebogenID =-1; if (!$statement=$this-\>dbh-\>prepare('SELECT idfragebogen FROM fragebogen WHERE titel = :titel AND datum = :datum AND kommentar=:kommentar')) { throw new Exception ('PDO::stuck\_out\_tongue:repare fehlgeschlagen!'); } if (!$statement-\>bindParam(':titel',$titel) || !$statement-\>bindParam(':datum',$datum) || !$statement-\>bindParam(':kommentar',$kommentar) ) { throw new Exception ('PDOStatement::bindParam fehlgeschlagen!'); } if(!$statement-\>execute()){ throw new Exception('PDOStatement::execute fehlgeschlagen'); } if(!$fragebogenID = $statement-\>fetch(PDO::FETCH\_OBJ)) { throw new EXception('PDOStatement::fetch fehlgeschagen!'); } //id der Fragebogen zurückgeben return $fragebogenID-\>idfragebogen; } } ?\>

Hallo

//ICH BEKOMME HIER EINE FEHLER
if ($row = $this->stmt->pruefFragebogen($titel, $datum, $kommentar))

So wie ich das sehen ist die Variable stmt noch leer, da kann das ja nicht klappen. Da muss doch zuvor sowas wie

$this-\>stmt = new Klassenname();

kommen.

sigterm

ich habe das Problem gelöst.

Man sollte einfach den letzten Primärschlüsseln, der eingefügt ist in der Tabelle, die n Beziehung mitnehmen. Mit dem SQL-Befehl:
SELECT MAX(id) FROM tabelle_mit_1_Beziehung;

Danach einfach diesen Schlüssel in der Tabellen mit n-Beziehung einfügen.