Hy,
im Rahmen eines Serverumzuges haben wir von Debian 6 auf Archlinux umgestellt. Damit verbunden war der Wechsel auf PHP 5.4.
In unserem PHP-Script zur Verwaltung einer Liga verwenden wir MDB2. Nicht ganz konsequent aber das hat uns auf eine Spur gebracht:
In der global.php, die immer eingebunden wird steht:
Wenn ich es auf dem einfachen Weg mache, funktioniert es auch
Nehme ich aber die "Autoexecute"-Methoden:
Bekomme ich eine Fehlermeldung, wie:
Im Moment stehe ich vor einem absoluten Rätsel ohne konkreten Anhaltspunkt, wo ich suchen soll. Ich habe noch unsere php.ini mit beigefügt. Ich weiß insgesamt ist der Code mehr als "optimierungsbedürftig" und wir arbeiten atm auch bereits an einem komplett neuen objektorientierten Script, aber das wird noch mind. 3 Monate dauern - für den Moment brauche ich eine Lösung für die aktuelle Saison; den kommenden Spieltag haben wir verschoben.
Last but not least - wir sind zwar ein ehrenamtliches Projekt, aber ein Kasten Bier im Wert von 20 EUR als Spende (Paypal, Scheck per Post, Überweisung whatever) ist schon drin, für denjenigen, der als Erster das Problem findet. Bei Bedarf stelle ich auch das gesamte Script zur Verfügung, es steht unter GPL v2 Lizenz.
im Rahmen eines Serverumzuges haben wir von Debian 6 auf Archlinux umgestellt. Damit verbunden war der Wechsel auf PHP 5.4.
In unserem PHP-Script zur Verwaltung einer Liga verwenden wir MDB2. Nicht ganz konsequent aber das hat uns auf eine Spur gebracht:
In der global.php, die immer eingebunden wird steht:
Code:
// Adding Pear-Database Support
require_once 'MDB2.php';
$wc3cs_dsn ='mysqli://user:passwd@localhost/Dbname';
$wc3cs_options=array
(
'debug' => 2,
'result_buffering' => true,
);
$wc3cs_mdb2=&MDB2::factory($wc3cs_dsn, $wc3cs_options);
if (PEAR::isError($wc3cs_mdb2))
{
die ($wc3cs_mdb2->getMessage());
}
$wc3cs_mdb2->loadModule('Extended');
Wenn ich es auf dem einfachen Weg mache, funktioniert es auch
Code:
// Season anlegen
if ($_GET["action"] == 'newseason' and $_GET["status"] == 'rdy') {
$table_values=array($_POST["seasonname"],$_POST["leaguetype"]);
$res = &$wc3cs_mdb2->query('INSERT INTO seasons (name, status, league_id) VALUES ("'.$_POST["seasonname"].'", 1, '.$_POST["leaguetype"].')');
if (PEAR::isError($res)) { die($res->getMessage()); }
$smarty->assign('ttext', 'Season wurde angelegt!');
}
Nehme ich aber die "Autoexecute"-Methoden:
Code:
// War-Comment eintragen
if ($_GET["action"] == 'matches' and $_GET["status"] == 'comment') {
if (strlen(SafeTextarea($_POST["comment"])) > 5) {
$poster = $UserClanTag.'|'.$UserName;
$table_name='match_comments';
$table_fields=array('username','war_id','datum','kommentar');
$types=array('text','integer','date','text');
$fields_values = array(
'username' => $poster,
'war_id' => $_GET["war"],
'datum' => date("Y-m-d H:i:s"),
'kommentar' => SafeTextarea($_POST["comment"]));
$res = $wc3cs_mdb2->extended->autoExecute($table_name, $fields_values,
MDB2_AUTOQUERY_INSERT, null, $types);
if (PEAR::isError($res)) { die($res->getMessage()." --- ".$res->getUserinfo()); }
$smarty->assign('ttext', '<br /><br />Kommentar wurde eingetragen! <a href="leaque.php?action=wars&status=teamwar&war='.$_GET["war"].'&season='.$_GET["season"].'">zurück zum Clanwar</a>');
} else {
$smarty->assign('uerror', true);
$smarty->assign('uerror_text', 'Kommentar leer/zu kurz!');
}
}
MDB2 Error: unknown error --- _execute: [Error message: Unable to execute statement] [Last executed query: INSERT INTO match_comments (username, war_id, datum, kommentar) VALUES (?, ?, ?, ?)] [Native code: 0]
Im Moment stehe ich vor einem absoluten Rätsel ohne konkreten Anhaltspunkt, wo ich suchen soll. Ich habe noch unsere php.ini mit beigefügt. Ich weiß insgesamt ist der Code mehr als "optimierungsbedürftig" und wir arbeiten atm auch bereits an einem komplett neuen objektorientierten Script, aber das wird noch mind. 3 Monate dauern - für den Moment brauche ich eine Lösung für die aktuelle Saison; den kommenden Spieltag haben wir verschoben.
Last but not least - wir sind zwar ein ehrenamtliches Projekt, aber ein Kasten Bier im Wert von 20 EUR als Spende (Paypal, Scheck per Post, Überweisung whatever) ist schon drin, für denjenigen, der als Erster das Problem findet. Bei Bedarf stelle ich auch das gesamte Script zur Verfügung, es steht unter GPL v2 Lizenz.
Attachments
Last edited by a moderator: