0

http://php.morva.net/manual/en/mysqli-stmt.bind-result.phpの次のコードは、mysqli クエリが準備および実行されていることを示しています。while ($stmt->fetch()) ループは、結果リソースを生成しているように見えます。これを変更して、関数への呼び出しを含めることはできますか?

while ($stmt->fetch()) {
       foreach($row as $key => $val)
       {
           $c[$key] = performFunction($val);
       }
       $result[] = $c;
   }

次に、print_r($result) の代わりに return($result) を返します。そうすれば、 $val の値を動的に変更できます
元のコード =

if ($stmt = $mysqli->prepare("SELECT * FROM sample WHERE t2 LIKE ?")) {
   $tt2 = '%';
     $stmt->bind_param("s", $tt2);
   $stmt->execute();

   $meta = $stmt->result_metadata();
   while ($field = $meta->fetch_field())
   {
       $params[] = &$row[$field->name];
   }

   call_user_func_array(array($stmt, 'bind_result'), $params);

   while ($stmt->fetch()) {
       foreach($row as $key => $val)
       {
           $c[$key] = $val;
       }
       $result[] = $c;
   }
     $stmt->close();
}
$mysqli->close();
print_r($result);

これは機能しますか、他にどのようにこれを行うことができますか?
皆さんありがとう...

4

2 に答える 2

0

これは完全に有効な方法ですが、サンプルの実装コードはうまく機能しないと思います。おそらく、mysqli_result オブジェクトをフェッチし、それに対してfetch_assocを呼び出し、結果の連想配列を結果セットにプッシュする方が、連想配列を自分で作成するよりも良いでしょう。

于 2009-04-03T13:47:26.903 に答える