Syntax error?

Shorty1968

Erfahrenes Mitglied
Hallo ich bin was SQL angeht noch ein absoluter anfänger,noch weniger wie in php,aber nun bin ich an einem Punkt wo ich mich damit aus einander setzen muss.

Daher meine Frage kann mir hier bitte jemand erklären wie ich aus der Unten aufgeführten fehlermeldung genau erkennen kann was und wo der Fehler liegt und wie ich den beheben kann?
Code:
Fatal error: Could not execute prepared statement: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= ''' at line 2
Information:
id: ac7d65d2f26e207a1f451925f9e246dbdc343d80
error message: Could not execute prepared statement: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= ''' at line 2
error code: 42000
sql type: wcf\system\database\MySQLDatabase
sql error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= ''' at line 2
sql error number: 42000
sql version: 5.1.72-2
sql query: SELECT	* FROM	wcf1_ WHERE	 = ?
sql query parameter 0:
file: /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/wcf/lib/system/database/statement/PreparedStatement.class.php (100)
php version: 5.3.3-7+squeeze17
wcf version: 2.0.0 (Maelstrom)
date: Mon, 13 Jan 2014 13:06:34 +0000
request: /testforum/wbb4/acp/index.php/BotAutoreplyRuleAdd/?
referer: http://domain.xy/testforum/wbb4/acp/index.php/BotAutoreplyRuleAdd/?
Stacktrace:
#0 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/wcf/lib/data/DatabaseObject.class.php(65): wcf\system\database\statement\PreparedStatement->execute(Array)
#1 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/lib/data/bot/autoreply/BotAutoreplyRule.class.php(28): wcf\data\DatabaseObject->__construct(false)
#2 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/lib/acp/form/BotAutoreplyRuleAddForm.class.php(113): wbb\data\bot\autoreply\BotAutoreplyRule->__construct(Array)
#3 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/wcf/lib/form/AbstractForm.class.php(63): wbb\acp\form\BotAutoreplyRuleAddForm->save()
#4 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/wcf/lib/form/AbstractForm.class.php(114): wcf\form\AbstractForm->submit()
#5 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/wcf/lib/page/AbstractPage.class.php(179): wcf\form\AbstractForm->readData()
#6 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/wcf/lib/page/AbstractPage.class.php(86): wcf\page\AbstractPage->show()
#7 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/wcf/lib/system/request/Request.class.php(58): wcf\page\AbstractPage->__run()
#8 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/wcf/lib/system/request/RequestHandler.class.php(106): wcf\system\request\Request->execute()
#9 /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/acp/index.php(10): wcf\system\request\RequestHandler->handle('wbb', true)
#10 {main}
 
Hi

zeig einmal folgende Datei her:
httpdocs/testforum/wbb4/wcf/lib/data/DatabaseObject.class.php

Machst du Plugins oder so für die Forensoftware
oder willst du sie nur verwenden?
Klingt jedenfalls nach einem Fehler in der Forensoftware.

PS: Es gibt hier auch einen PHP-Bereich, dass muss nicht zu den Sonstigen Sprachen.
 
Ich bin dabei Plugins für das wBB3 und 4 zu machen,ich habe es hier rein gepostet weil es sich um einen Fehler bei einer SQL Abfrage in einer php Datei geht und ich nichts für SQL gefunden habe sorry.

Ich konnte den Fehler aber schon beheben,es lag daran das $row keinen Wert angegeben hatte.

Danke für deine Hilfe.
 
Ich muss das hier noch mal aufgreifen,ich hatte die Fehlermeldung zwar weg bekommen aber die Funktion war dann auch weg.

Ich sitze nun schon fast den ganzen Tag daran die Lösung zu finden,aber ich kenne mich mit SQL Abfragen überhaupt nicht aus deshalb meine bitte kann mir bitte jemand sagen was an Folgender SQL Abfrage Falsch ist und wie ich es beheben kann?
Code:
public function __construct($ruleID, $row = null) {
		if ($ruleID !== null) {
			$sql = "SELECT *
				FROM wbb".WCF_N."_bot_autoreply_rule
				WHERE ruleID = ".intval($ruleID);
			$statement = WCF::getDB()->prepareStatement($sql);
			$row = $statement->fetchArray();
		}
		
		parent::__construct($row);
	}
Die Fehlermeldung ist immer noch die selbe wie im Ersten Beitrag.
 
Also, ich habe mir die Fehlermeldung angesehen und würde sagen, da fehlt ein Table-Suffix in der Query:

Code:
sql query: SELECT   * FROM  wcf1_ WHERE  = ?
 
Ich kenne mich mit SQL ja noch nicht aus aber in der Zeit wo ich mich nun gezwungener massen damit beschäftige habe ich von Table-Suffix nichts gehört geschweige den etwas gesehen?

Wie müsste das den in meinem Code aussehen?
 
Ich bekomme nun im Zuge von dem Weiter versuchen Folgende Meldung.
Code:
error message: PHP notice in file /var/www/vhosts/domain.xy/httpdocs/testforum/wbb4/wcf/lib/system/database/statement/PreparedStatement.class.php (92): Array to string conversion
Wie kann ich das in diesem Code beheben?
PHP:
public function __construct($ruleID, $row = null) {
        if ($ruleID !== null) {
            $sql = "SELECT *
                FROM wbb".WCF_N."_bot_autoreply_rule
                WHERE ruleID = ?";
            $statement = WCF::getDB()->prepareStatement($sql);
            $statement->execute(array($ruleID));
            $row = $statement->fetchArray();

            if (!$row) $row = array();
        }
        
        parent::__construct($row);
    }
 
Zurück