Hallo liebe Community,
ich stehe grad irgendwie auf dem Schlauch... Hab ne Datenbanktabelle:
id - int(12) Auto Increment
seite - varchar(255)
titel - varchar(255)
desc - varchar(255)
keys - varchar(255)
und dazu ne Klasse mit der folgenden Funktion:
Hier der Scriptauszug, über den eingetragen werden soll:
Wenn ich die Funktion nutze, wie ich diese oben stehen habe - kommt folgender Fehler:
Fatal error: Call to a member function bind_param() on a non-object in /home/www/web355/html/dev/class/class_MetaTags.php on line 359
wäre folgende Zeile:
nehme ich dir Funktion aber so:
funktioniert der Eintrag, komischer Weise aber nicht, alsbald ich den dritten und vierten Parameter mit an die DB übergeben möchte. Hat jemand ne Ahnung, was das Problem sein könnte? Stehe nämlich ziemlich auf dem Schlauch grad
ich stehe grad irgendwie auf dem Schlauch... Hab ne Datenbanktabelle:
id - int(12) Auto Increment
seite - varchar(255)
titel - varchar(255)
desc - varchar(255)
keys - varchar(255)
und dazu ne Klasse mit der folgenden Funktion:
PHP:
public function addSiteMetas($site, $titel, $desc, $keys){
$stmt=$this->dbh->dbh->prepare("INSERT INTO metas (seite, titel, keys)
VALUES(?, ?, ?)");
$stmt->bind_param("sss", $site, $titel, $keys);
$stmt->execute();
if($stmt->affected_rows>0){
return TRUE;
}
return FALSE;
}
Hier der Scriptauszug, über den eingetragen werden soll:
PHP:
//MetaTags, für eine weitere Seite hinzufügen
if($do=="add"){
require_once 'class/class_MetaTags.php';
$metas=new MetaTags();
$added=FALSE;
$error=FALSE;
$name="";
$titel="";
$keys="";
$desc="";
$name_error="";
$titel_error="";
$keys_error="";
$desc_error="";
if(isset($_POST['send'])){
//POST extrahieren für die VAlues
extract($_POST);
//Prüfe die Eingaben
foreach($_POST as $inhalt => $wert){
//Prüfe ob die Felder Inhalte haben
if(empty($wert)){
if($inhalt=="name"){
$error=TRUE;
$name_error="<b>Bitte einen Seitennamen eingeben.</b>";
}elseif($inhalt=="titel"){
$error=TRUE;
$titel_error="<b>Bitte einen Seitentitel eingeben.</b>";
}elseif($inhalt=="keys"){
$error=TRUE;
$keys_error="<b>Bitte die KeyWords eintragen.</b>";
}elseif($inhalt=="desc"){
$error=TRUE;
$desc_error="<b>Bitte die Seitenbeschreibung eintragen!";
}
}
//Weitere Prüfungen
else{
//Trifft hier vorerst nur auf das FEld "name" zu
if($inhalt=="name"){
if($metas->checkSiteExist($wert)===TRUE){
$error=TRUE;
$name_error="<b>Diese Seite wurde bereits eingetragen.</b>";
}
}
}
}
//Prüfungen Ende-----------------------------------------------------------------
//Wenn kein Fehler vorliegt, trage in die Datenbank ein
if($error!==TRUE){
//Versuche den Eintrag in die Datenbank vorzunehmen
if($metas->addSiteMetas($name, $titel, $desc, $keys)===TRUE){
$added=TRUE;
}else{
$ausgabe.="<center><b>Konnte den Eintrag nicht vornehmen!</b></center>\r\n";
}
}
}
Wenn ich die Funktion nutze, wie ich diese oben stehen habe - kommt folgender Fehler:
Fatal error: Call to a member function bind_param() on a non-object in /home/www/web355/html/dev/class/class_MetaTags.php on line 359
wäre folgende Zeile:
PHP:
$stmt->bind_param("sss", $site, $titel, $keys);
nehme ich dir Funktion aber so:
PHP:
public function addSiteMetas($site, $titel, $desc, $keys){
$stmt=$this->dbh->dbh->prepare("INSERT INTO metas (seite, titel)
VALUES(?, ?)");
$stmt->bind_param("ss", $site, $titel);
$stmt->execute();
if($stmt->affected_rows>0){
return TRUE;
}
return FALSE;
}
funktioniert der Eintrag, komischer Weise aber nicht, alsbald ich den dritten und vierten Parameter mit an die DB übergeben möchte. Hat jemand ne Ahnung, was das Problem sein könnte? Stehe nämlich ziemlich auf dem Schlauch grad

Zuletzt bearbeitet: