SQL-INSERT Objektorientiert

SQL-INSERT Objektorientiert

am 18.07.2006 23:10:02 von Hadhafang

Hallo Leute ich steh hier vor einem Problem und zwar will ich eine
Klasse definieren welche SQL-Statements enthält.Wie in dem folgenden
Listing stelle ich eine Verbindung zu mySQL Datenbank her.Dieses Skript
soll Datensätze in eine tabelle eintragen.Da ich aber keine Ahnung von
objektorientierten PHP habe wollt ich fragen ob ich dies auf solche
weise hinkriegen kann.Leider gibt dieses Skript weder eine
Fehlermeldung aus noch wird die gewünschte Datenmenge eingetragen.

Bitte um Hilfe

MfG Valentin


require 'DB_Zugriff_OO.php';
error_reporting(E_ALL);

class sqlStatements{

public $Teilnehmer;
public $Thema;
public $Datum_Anfang;
public $Datum_Ende;
public $Anfang;
public $Ende;
public $Equipment;
public $Beschreibung;
public $Raum;
private $tabelle =3D "termin";
public function addTermin()
{

$this->tabelle =3D "termin";
$this->Teilnehmer =3D $_POST["Person"];
$this->Thema =3D $_POST["Terminthema"];
$this->Datum_Anfang =3D $_POST["Datum_Anf"];
$this->Datum_Ende =3D $_POST["Datum_Ende"];
$this->Anfang =3D $_POST["Zeit_Anf"];
$this->Ende =3D $_POST["Zeit_Ende"];
$this->Equipment =3D $_POST["Geraet"];
$this->Beschreibung =3D $_POST["Beschreibung"];
$this->Raum =3D $_POST["Raum"];

if
(isset($_POST["Person"])&&($_POST["Terminthema"])&&($_POST[" Datum_Anf"])&&(=
$_POST["Datum_Ende"])&&($_POST["Zeit_Anf"])&&($_POST["Zeit_E nde"])&&($_POST=
["Geraet"])&&($_POST["Beschreibung"])&&($_POST["Raum"]))
{
$sql=3D"INSERT INTO ' . $this->tabelle . ' ('Datum_Anfang',
'Datum_Ende', 'Anfang', 'Ende', 'Beschreibung', 'Teilnehmer', 'Thema',
'Raum', 'Equipment')
VALUES (' . $Datum_Anfang . ', ' . $Datum_Ende . ', ' . $Anfang . ',
' . $Ende . ', ' . $Beschreibung . ', ' . $Teilnehmer . ', ' . $Thema .
', ' . $Raum . ', ' . $Equipment . ')";
$query=3Dmysqli_query($sql) or die('SQL: '.mysqli_error());
echo 'SQL: '.$sql.'
';
}
else { echo "Bitte alle Felder ausfüllen"; };
=09
}
=09
=09
=09
}mysqli_close($db);
?>

Re: SQL-INSERT Objektorientiert

am 19.07.2006 07:59:02 von Bernd Muent

Hadhafang@lycos.de schrieb:
^^^^^^^^^^^^^^^^^^

Bitte verwende einen Realname, Valentin!


> Hallo Leute ich steh hier vor einem Problem und zwar will ich eine
> Klasse definieren welche SQL-Statements enthält.Wie in dem folgenden
> Listing stelle ich eine Verbindung zu mySQL Datenbank her.Dieses Skript
> soll Datensätze in eine tabelle eintragen.Da ich aber keine Ahnung von
> objektorientierten PHP habe wollt ich fragen ob ich dies auf solche
> weise hinkriegen kann.Leider gibt dieses Skript weder eine
> Fehlermeldung aus noch wird die gewünschte Datenmenge eingetragen.

Das "Skript" (hier nicht wiedergegeben) ist einfach eine Klassendefinition.
Du mußt die Klasse schon instanzieren und die Methode addTermin aufrufen.

$myDBClass=new sqlStatements();
$myDBClass->addTermin();

Das wird aber nur gehen, wenn die zig geforderten $_POST-Variablen
gesetzt sind.
Siehe:
if
(isset($_POST["Person"])&&($_POST["Terminthema"])&&($_POST[" Datum_Anf"])&&($_POST["Datum_Ende"])&&($_POST["Zeit_Anf"])&& ($_POST["Zeit_Ende"])&&($_POST["Geraet"])&&($_POST["Beschrei bung"])&&($_POST["Raum"]))

B.




--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt@bmservices.de

Re: SQL-INSERT Objektorientiert

am 19.07.2006 09:28:25 von thborsdorf

Bernd Muent schrieb am 19.07.2006 07:59:
> Das wird aber nur gehen, wenn die zig geforderten $_POST-Variablen
> gesetzt sind.

....UND wenn du "$this->Teilnehmer" füllst und dann auch
"$this-Teilnehmer" in das SQL-Statement gibst! "$Teilnehmer" bringt dir
hier nix!

MfG Thomas.

Re: SQL-INSERT Objektorientiert

am 19.07.2006 09:40:49 von Tobias Kutzler

Borsdorf, Thomas schrieb:
> Bernd Muent schrieb am 19.07.2006 07:59:
>> Das wird aber nur gehen, wenn die zig geforderten $_POST-Variablen
>> gesetzt sind.
>
> ...UND wenn du "$this->Teilnehmer" füllst und dann auch
> "$this-Teilnehmer" in das SQL-Statement gibst! "$Teilnehmer" bringt dir
> hier nix!

So wie auch $this->Thema, $this->Datum_Anfang ....

Was mich jedoch noch mehr wundert: Erst werden allen Klassenvariablen
die Inhalte des POST Requests zugewiesen und danach erst geprüft, ob sie
existieren! In diesem Fall würde das Skript schon vorher eine
Fehlermeldung ausgeben, wenn eine POST-Variable fehlt. Nur so als
Hinweis an den OP: Die Prüfung (isset der ganzen POST Variablen) mal vor
die Zuweisung setzen. Macht auch logisch mehr Sinn.

Ciao,
Tobias

Re: SQL-INSERT Objektorientiert

am 19.07.2006 22:24:42 von Hadhafang

Danke an alle für die schnelle Hilfe habs hingekriegt.
Ciao Valentin