Probleme mit SQL in PHP?

Danke das würde heisen das in diese SQL etwas Falsch ist?
Code:
DROP TABLE IF EXISTS wbb1_bot_autoreply_rule;
CREATE TABLE wbb1_bot_autoreply_rule (
	ruleID int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
	title varchar(255) NOT NULL DEFAULT '',
	search text NOT NULL,
	regexps text NOT NULL,
	reply mediumtext NOT NULL,
	userID int(10) NOT NULL DEFAULT '0',
	username varchar(255) NOT NULL DEFAULT '',
	`trigger` tinyint(1) NOT NULL DEFAULT '2',
	enableSmilies tinyint(1) NOT NULL DEFAULT '1',
	enableHtml tinyint(1) NOT NULL DEFAULT '0',
	enableBBCodes tinyint(1) NOT NULL DEFAULT '1',
	showSignature tinyint(1) NOT NULL DEFAULT '1',
	isActive tinyint(1) NOT NULL DEFAULT '1',
	PRIMARY KEY(ruleID)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
Das SQL ist auf jeden Fall schon mal falsch, man darf nur einmal den Primary Key festlegen. Entferne in der vorletzten Zeile das "PRIMARY KEY(ruleID)". Aber das hat nichts mit deinem Problem beim Select zu tun.
 
Danke das werde ich dann noch ändern,das mit dem SELECT verstehe ich nicht es ist doch in der PHP Datei Vorhanden in Form von INSERT,UPDATE,DELETE usw die Funktionen eben die es machen soll?
Code:
public static function create(array $data) {
		$sql = 'INSERT INTO wbb'.WCF_N.'_bot_autoreply_rule ($data) VALUES (?)';
		$statement = WCF::getDB()->prepareStatement($sql);
		$statement->execute(array(
	        $data
        )); 
		$ruleID = $statement->lastInsertId('wbb'.WCF_N.'_bot_autoreply_rule', 'ruleID');
		return new BotAutoreplyRuleEditor($ruleID);
	}
	
	public function update(array $data) {
		$sql = 'UPDATE *
				FROM wbb'.WCF_N.'_bot_autoreply_rule
			SET '.self::buildQueryString($data).'
			WHERE ruleID = ?';
		$statement = WCF::getDB()->prepareStatement($sql);
                $statement->execute(array(
	        $data
	        
        ));
		
		foreach ($data as $field => $value)
			$this->data[$field] = $value;
	}
	
	public function delete() {
               $sql = 'DELETE *
				FROM wbb'.WCF_N.'_bot_autoreply_rule
	               WHERE ruleID = ?';
               $statement = WCF::getDB()->prepareStatement($sql);
               $statement->execute(array(
	       $ruleID
        ));
        
		$set = array();
		foreach ($data as $field => $value)
			$set[] = "`".$field."` = '".escapeString($value)."'";
		return implode(', ', $set);
	}
 
Aber es gibt keine Funktion zum SELECTieren. Also nach dem CRUD-Prinzip (Create,Re(trie|cei)ve,Update,Delete) fehlt noch die Retrieve/Receive-Methode.
 
Kannst du mir bitte an Hand meines Ausschnittes ein beispiel geben,leider kenne ich mich mit den SQL noch schlechter aus als wie mit PHP.
 
Sorry, kann ich nicht. Ich kenne mich weder mit WBB aus, noch weiß ich, wie die Daten weiter verwendet werden, die da zurück kommen (als Array, Assoc.Array, Objekt, einzelne ID). Da das WBB Geld kostet, kann ich da noch nicht mal was runter laden und rum experimentieren. Warum stellst du solch spezifische Fragen nicht bei WBB direkt? Dort kann man sicher kompetenter weiter helfen.
 
Zurück