2012-04-05 13 views
2

Ich habe Probleme mit dem folgenden Code gibt mir keine Ergebnisse. Wenn ich jedoch die angegebene Zeile auskommentiere und die Bind_param-Zeile auskommentiere, funktioniert das zwar, aber widerspricht das nicht dem Zweck von mysqli? meine Var_dump geben meinen string (1) "1"bind_param Schwierigkeiten

function teams($mysqli, $league_id) { 
    echo 'league id = ' . var_dump($league_id); 
    $sql = "SELECT team_id, team_name FROM teams where league_id='?'"; 
// $sql = "SELECT team_id, team_name FROM teams where league_id='".$league_id."'"; 
    $stmt = $mysqli->prepare($sql); 
    $stmt->bind_param('i', $league_id); 
    $stmt->execute(); 
    $stmt->bind_result($col1, $col2); 
    while($stmt->fetch()) { 
     $results[] = array( 
      'team_id' => $col1, 
      'team_name' => $col2 
     ); 
    } 
    $stmt->close(); 
    var_dump($results); 
    return $results; 
} 
+1

Zitieren Sie nicht das '?' - die vorbereitete Anweisung Engine kümmert sich um all das. es sollte nur '... league_id =?' sein. –

+0

danke das hat es behoben –

Antwort

2

Die Funktion bool mysqli_stmt :: bind_param (string $ Arten, Misch & $ var1 [, mixed & $ ...])

akzeptiert die folgenden $ Arten

Typ Spezifikation Zeichen

Zeichen Beschreibung

i Variable entspricht, integer Typ

d entsprechende Variable Typ hat doppelte

s entsprechende Variable hat Zeichenfolge

b entsprechende Variable ein Blob-Typ ist und in Paketen

gesendet Sie sind Spezifizierung der $ types als 'i' und Angabe des Wertes als String in einfachen Anführungszeichen. Entfernen Sie die Anführungszeichen und versuchen Sie, $ liga_id in den int-Wert zu konvertieren.

http://php.net/manual/en/mysqli-stmt.bind-param.php

glücklich Codierung !!