2012-04-05 15 views
2

次のコードで問題が発生しましたが、結果が表示されません。しかし、指定された行のコメントを外してbind_param行をコメントアウトすると、それは動作しますが、mysqliの目的を破るものではありませんか? 私のvar_dumpはbind_paramの問題

は受け付け([...、混合& $]文字列$種類、混合& $ VAR1)私の文字列(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; 
} 
+1

'?'を引用しないでください - 準備されたステートメントエンジンがそれをすべて処理します。 '... league_id =? 'でなければなりません。 –

+0

ありがとう –

答えて

2

機能するbool mysqli_stmt :: bind_paramを与えます以下$種類

タイプ仕様文字

文字説明

私は変数が整数

変数に対応するdは

の対応する変数は、変数を対応する

bはブロブで、あなたは、パケットに

が送信されます文字列を入力したダブル

型を持つ入力した対応$型を 'i'として指定し、その値を一重引用符で囲んで文字列として与えます。引用符を削除し、$ league_idをint値に変換しようとします。

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

コーディングハッピー!