$mysqli->prepare SELECT *
Yael
- php
0 Sven Rautenberg0 Martin_Online0 Tom
Hallöchen,
ich wollte Daten aus meiner Datenbank lesen
$abfrage = $mysqli->prepare("SELECT * FROM team
WHERE team_code = ?");
$abfrage->bind_param("i", $code);
$abfrage->execute();
$abfrage->bind_result($name, $bild);
$abfrage->fetch();
$abfrage->close();
Nun erhalte ich diesen Fehler
Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statemen
Wenn ich in meinem SELECT den * weg nehme und name, bild eintrage, geht es. Ich brauch aber ALLE Felder (ca. 30 Stück) deshalb wollte ich mit * arbeiten. Geht das bei prepare nicht mehr?
Moin!
Hallöchen,
ich wollte Daten aus meiner Datenbank lesen
$abfrage = $mysqli->prepare("SELECT * FROM team
WHERE team_code = ?");
$abfrage->bind_param("i", $code);
$abfrage->execute();
$abfrage->bind_result($name, $bild);
$abfrage->fetch();
$abfrage->close();
>
> Nun erhalte ich diesen Fehler
>
> Warning: mysqli\_stmt::bind\_result(): Number of bind variables doesn't match number of fields in prepared statemen
>
> Wenn ich in meinem SELECT den \* weg nehme und name, bild eintrage, geht es. Ich brauch aber ALLE Felder (ca. 30 Stück) deshalb wollte ich mit \* arbeiten. Geht das bei prepare nicht mehr?
Wenn du alle Felder brauchst und an das Ergebnis mit bind\_result ran willst, musst du dort auch alle Felder angeben, nicht nur zwei. Ansonsten gibts ein angemeckertes Mißverhältnis von nur zwei gebundenen Variablen, aber 30 Feldern aufgrund des \* beim SELECT.
- Sven Rautenberg
Wenn ich in meinem SELECT den * weg nehme und name, bild eintrage, geht es. Ich brauch aber ALLE Felder (ca. 30 Stück) deshalb wollte ich mit * arbeiten. Geht das bei prepare nicht mehr?
Ich kann dir nur empfehlen auf den * zu verzichten. Brauchst du wirklich z.B. eine ID (solltest du die haben). Und wenn du bei bind_result
eh alle Felder angeben musst, dann kannst du mit einmal kopieren auch oben bei SELECT
einfügen :)
Hello,
ich wollte Daten aus meiner Datenbank lesen
$abfrage = $mysqli->prepare("SELECT * FROM team
WHERE team_code = ?");
$abfrage->bind_param("i", $code);
$abfrage->execute();
$abfrage->bind_result($name, $bild);
$abfrage->fetch();
$abfrage->close();
>
Alternativ könntest Du auch mit fetch\_result() arbeiten
<http://de2.php.net/manual/en/mysqli-stmt.get-result.php>
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
☻\_
/▌
/ \ Nur selber lernen macht schlau
[Die ultimative Seite für Selbermacher](http://getscript.de/)