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