2012-03-02 2 views
3

スペイン語などの特定の国の人のidを返すデータベースクラスの関数があります。しかし何らかの理由で私は一つの価値しか得ていませんが、同じ国に多くの人がいます。ここに関数があります:Mysqliのステートメントで配列を返す

Class DbAb { 
private $db; 

public function sameCountry($country) { 

    $query = "SELECT id FROM users WHERE country = ? "; 
    $stmt = $this->db->prepare($query); 
    $stmt->bind_param("s", $country); 
    if ($stmt->execute()) { 

     $stmt->bind_result($sameCountry); 
     $stmt->fetch(); 

     return $sameCountry; 
    } 
    return false; 
} 



} 

$sameC = new DbAb(); 

$samePeople = $sameC->samecountry("spain"); 

print_r($samePeople); 

結果の配列を返す方法は誰にも分かりますか?変数を配列として定義しようとしましたが、まだ動作しません。

+0

あなたバグ場合は、自分自身を、あなたはいくつかの行をフェッチの例を見ることができます。 –

+3

私はしたし、私には分かりませんでした... –

答えて

7

bind_result($ var)+ fetch()は、$ var変数に1行を挿入します。

メソッドからIDの配列を返す場合は、最初に空の配列を作成し、各行に対して挿入する必要があります。

例えば、これで

$stmt->bind_result($sameCountry); 
$stmt->fetch(); 
return $sameCountry; 

:この置き換えマニュアルページを読んで

$arr = array(); 
$stmt->bind_result($id); 
while ($stmt->fetch()) { 
    $arr[] = $id; 
} 
return $arr; 
+0

私はfetch_array()を使用する必要がありますが... –

+0

ドキュメントをチェックしてください:http://www.php.net/manual/en/mysqli- stmt.fetch.php –

関連する問題