2012-04-05 93 views
2

我遇到問題下面的代碼給我沒有結果。但是,如果我取消註釋指定的行,並註釋掉它的bind_param行,但是這不是破壞mysqli的目的嗎? 我的var_dump給我的字符串(1) 「1」bind_param困難

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 =?'。 – 2012-04-05 04:02:16

+0

謝謝修復它 – 2012-04-05 04:04:45

回答

2

功能布爾mysqli_stmt :: bind_param(字符串$類型,混合& $ VAR1 [,混合& $ ...])

接受以下$類型

型號規格字符

字符說明

i。相應變量的類型爲整數

d對應的變量的類型是雙

及其對應變量的類型是串

B中的對應變量是一個斑點,將在分組中發送

您是將$類型指定爲'i'並將值作爲字符串用單引號引起來。刪除引號並嘗試將$ league_id轉換爲int值。

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

快樂編碼!!