2

次のコードで結果が得られないという問題があります。ただし、指定された行のコメントを外し、bind_param 行をコメント アウトすると機能しますが、それは mysqli の目的に反していませんか? 私のvar_dumpは私の文字列(1)「1」を与えます

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;
}
4

1 に答える 1

2

関数 bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

次の $types を受け入れます

型指定文字

キャラクター説明

i 対応する変数は整数型です

d 対応する変数の型は double です

s 対応する変数は文字列型です

b 対応する変数は blob であり、パケットで送信されます

$types を 'i' として指定し、値を一重引用符で囲んだ文字列として指定しています。引用符を削除し、$league_id を int 値に変換してみてください。

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

ハッピーコーディング!!

于 2012-04-05T04:08:18.877 に答える