$mysqli->prepare SELECT *
    
Yael
    
    
      
    
  - php
- 0 Sven Rautenberg
- 0 Martin_Online
- 0 Tom
 nicht angemeldet
 nicht angemeldetHallö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  
  
  
-- 
 ☻\_  
/▌  
/ \ Nur selber lernen macht schlau  
[Die ultimative Seite für Selbermacher](http://getscript.de/)