MySQL - sonuç dönmeden önce PHP fonksiyonu sayesinde veritabanı alanı geçmek

2 Cevap php

http://php.morva.net/manual/en/mysqli-stmt.bind-result.php aşağıdaki kod hazırlanan ve yürütülen bir mysqli sorgu gösterir. ($ deyim-> fetch ()) iken sonuç kaynağı oluşturuyor gibi döngü görünüyor. Ben bir işlev örneğin bir çağrı eklemek için değiştirebilirsiniz

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

Then instead of print_r($result) I would return($result). That way I can dynamically change the value of $val
The original code =

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

Bu iş, başka nasıl bunu yapabilirim ki?
Teşekkürler ...

2 Cevap

Bunu hiç geri PHP bunu kılmadan şeyler MySQL tarafındaki verileri işlemek için bir UDF (Kullanıcı Tanımlı Fonksiyon) kullanabilirsiniz.

Ben örnek uygulama kodu oldukça işe olmaz şüpheli olsa da bu, tamamen geçerli bir yöntem. Muhtemelen, bir mysqli_result nesne getiriliyor üzerinde fetch_assoc çağıran ve oldukça birleşmeli dizinin kendiniz yaparak ayarlamak sizin sonuç üzerine çıkan ilişkisel dizi itme daha iyiyiz.