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

然后我会返回($result)而不是 print_r($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

1

您可以使用 UDF(用户定义函数)来处理 MySQL 端的数据,然后再将其返回 PHP。

于 2009-04-03T19:07:09.443 回答
0

这是一个完全有效的方法,尽管我怀疑您的示例实现代码不太适用。您最好获取一个 mysqli_result 对象,在其上调用fetch_assoc,然后将生成的关联数组推送到您的结果集中,而不是自己制作关联数组。

于 2009-04-03T13:47:26.903 回答