Hallo,
wie der Titel schon sagt, habe ich ein Problem mit bind_result(). Alle Variablen werden ganz normal mit den Daten aus der Datenbank gefüllt, nur $artikel_er bleibt leer.
Die Tabelle ist so aufgebaut(richtige Reihenfolge): id, name, nameurl, artikel, time, description.
Und das ist der Query:
[php]
$erweitern_sql = ‚SELECT * FROM blog WHERE id=?‘;
$erweitern_pre = $db->prepare($erweitern_sql);
$erweitern_pre->bind_param(‚i‘, $_GET[‚erweitern‘]);
$erweitern_pre->execute();
$erweitern_pre->bind_result($id_er, $name_er, $nameurl_er, $artikel_er, $time_er, $description_er);//Alle Variablen werden gefüllt nur $artikel_er nicht
$erweitern_pre->fetch();
$erweitern_pre->close();
[/php]
Die Variable will ich mit echo ausgeben, aber nichts passiert:
[php]
<?php echo $artikel_er; ?>
[/php]
Seht ihr einen Fehler?
Gruß
push
Ich komm einfach nicht weiter. Für mich ist einfach kein Fehler zu sehen. Ich habe mal ein bisschen mit dem Error Handling rumgespielt. Anscheinend gibt es keinen Fehler so habe ich die Funktionen eingebaut:
[php]
$erweitern_sql = ‚SELECT * FROM blog WHERE id=?‘;
$erweitern_pre = $db->prepare($erweitern_sql);
$erweitern_pre->bind_param(‚i‘, $_GET[‚erweitern‘]);
$erweitern_pre->execute();
printf(„Error: %s.\n“, $erweitern_pre->error);
printf(„Error: %s.\n“, $erweitern_pre->errno);
$erweitern_pre->bind_result($id_er, $name_er, $nameurl_er, $artikel_er, $time_er, $description_er);
$erweitern_pre->fetch();
$erweitern_pre->close();
[/php]
Probier mal ein var_dump($artikel_er);. Ich sehe so auch keinen Fehler. Wenn die übrigen Daten durchkommen, könnte es am Inhalt des Feldes liegen.
Der Inhalt des Feldes sollte eigentlich keine Probleme machen, denn er besteht aus ganz normalen Lateinischen Zeichen. Als Text habe ich den Lorem Ipsum Beispieltext genommen.
longtext dürfte für das Feld auch das richtige sein, aber hier ist mal die Tabelle mit den Daten:
-- Tabellenstruktur für Tabelle `blog`
--
CREATE TABLE IF NOT EXISTS `blog` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(300) COLLATE latin1_german2_ci NOT NULL,
`nameurl` varchar(300) COLLATE latin1_german2_ci NOT NULL,
`artikel` longtext COLLATE latin1_german2_ci NOT NULL,
`time` int(11) NOT NULL,
`description` varchar(250) COLLATE latin1_german2_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `nameurl` (`nameurl`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=5 ;
--
-- Daten für Tabelle `blog`
--
INSERT INTO `blog` (`id`, `name`, `nameurl`, `artikel`, `time`, `description`) VALUES
(1, 'wdawdaw', 'awdawdawd', 'awdawdawdawd', 1276623826, 'awdawd'),
(2, 'awdawdawd', 'dawdaw', 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.', 1276623971, 'awdawdawd');
mysqli prepare und longtext - XHTMLforum
Liegt tatsächlich an dem LONGTEXT. (Lässt sich über eine Suche noch mehr zu finden.) Wenn du es zu TEXT oder so änderst, sollte es gehen.
MySQL :: MySQL 5.0 Reference Manual :: 10.4.3 The BLOB and TEXT Types
Ah, sowas blödes!
Hab das ganze mal auf Text geändert. Ich denke Medium Text wäre mit 16 Millionen Zeichen auch noch übertrieben(longtext wäre also nicht richtig gewesen :))
Mit so einem Fehler hab ich echt nicht gerechnet, da hätte ich noch lange gucken können. Danke für deine Hilfe!
Gruß