$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($key, $field); if ($val === false) { $val = "''"; } if (isset($out[$key])) { $dbh->query("SET @" . idf_escape($field["field"]) . " = " . $val); } } $call[] = (isset($out[$key]) ? "@" . idf_escape($field["field"]) : $val); } $result = $dbh->multi_query((isset($_GET["callf"]) ? "SELECT" : "CALL") . " " . idf_escape($_GET["call"]) . "(" . implode(", ", $call) . ")"); if (!$result) { echo "
" . htmlspecialchars($dbh->error) . "
\n"; } else { do { $result = $dbh->store_result(); if (is_object($result)) { select($result); } else { echo " \n"; } } while ($dbh->next_result()); if ($out) { select($dbh->query("SELECT " . implode(", ", $out))); } } } ?>