$field) { if (substr($field["inout"], -3) == "OUT") { $out[$i] = "@" . idf_escape($field["field"]) . " AS " . idf_escape($field["field"]); } if (!$field["inout"] || substr($field["inout"], 0, 2) == "IN") { $in[] = $i; } } if (!$error && $_POST) { $call = array(); foreach ($routine["fields"] as $key => $field) { if (in_array($key, $in)) { $val = process_input($field); if ($val === false) { $val = "''"; } if (isset($out[$key])) { $connection->query("SET @" . idf_escape($field["field"]) . " = $val"); } } $call[] = (isset($out[$key]) ? "@" . idf_escape($field["field"]) : $val); } $query = (isset($_GET["callf"]) ? "SELECT" : "CALL") . " " . table($PROCEDURE) . "(" . implode(", ", $call) . ")"; $start = microtime(true); $result = $connection->multi_query($query); $affected = $connection->affected_rows; // getting warnigns overwrites this echo $adminer->selectQuery($query, $start, !$result); if (!$result) { echo "

" . error() . "\n"; } else { $connection2 = connect(); if (is_object($connection2)) { $connection2->select_db(DB); } do { $result = $connection->store_result(); if (is_object($result)) { select($result, $connection2); } else { echo "

" . lang('Routine has been called, %d row(s) affected.', $affected) . " " . @date("H:i:s") . "\n" // @ - time zone may be not set ; } } while ($connection->next_result()); if ($out) { select($connection->query("SELECT " . implode(", ", $out))); } } } ?>

\n"; foreach ($in as $key) { $field = $routine["fields"][$key]; $name = $field["field"]; echo "" . $adminer->fieldName($field); $value = $_POST["fields"][$name]; if ($value != "") { if ($field["type"] == "enum") { $value = +$value; } if ($field["type"] == "set") { $value = array_sum($value); } } input($field, $value, (string) $_POST["function"][$name]); // param name can be empty echo "\n"; } echo "\n"; } ?>