Der folgende Code aus http://php.morva.net/manual/en/mysqli-stmt.bind-result.php zeigt eine MySQL-Abfrage, die vorbereitet und ausgeführt wird. while ($ stmt-> fetch()) Schleife sieht so aus, als würde sie die Ergebnisressource erzeugen. Kann ich dies ändern, um einen Anruf zu einer Funktion z.MySQL - Datenbankfeld durch PHP-Funktion übergeben, bevor das Ergebnis zurückgegeben wird
while ($stmt->fetch()) {
foreach($row as $key => $val)
{
$c[$key] = performFunction($val);
}
$result[] = $c;
}
Dann anstelle von print_r ($ Ergebnis) würde ich zurück ($ Ergebnis). So kann ich den Wert von $ val dynamisch Der ursprüngliche Code
ändern =
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);
Würde dieser Arbeit, wie sonst könnte ich das tun?
Danke allen ...
Dank Kalium, du hast gesagt "schieb das resultierende assoziative Array auf deine Ergebnismenge" ... kannst du einen Beispielcode bereitstellen, um ein assoziatives Array auf eine Ergebnismenge zu schieben. Also würde ich mysqli_result :: fetch_assoc() verwenden, um jede Zeile zu bekommen? dann Funktion in Zeile ausführen? Wie schiebe ich die Reihe zurück in die Ergebnismenge? – undefined
Kann ich dies mit mysql tun - ich habe MySQL Version 5.0.22. mysqli-Befehle geben Fehler zurück - zB "Call to undefined function mysqli_connect()" – undefined
Das liegt daran, dass Sie anscheinend nicht die mysqli-Erweiterung installiert haben. Sie können das assoziative Array wie folgt in Ihre Ergebnismenge einfügen: $ results [] = $ associativeArray; – Kalium