У меня есть функция, хранящуюся в базе данных MySQL:Как передать параметры хранимой функции в mysql?
CREATE OR REPLACE FUNCTION ORDINACIJA.calcBMI
(
cPol varchar2,
dPregled date,
dRodjen date,
nVisina number,
nTezina number
) return varchar2 is
nBMI number;
nStarost number;
cBMIText varchar2(100);
nPothranjen number;
nMrsav number;
nNormalan number;
nGojazan number;
nPrekomjeran number;
nMinTezina number;
nMaxTezina number;
begin
nBMI := round(nTezina/((nVisina/100)*(nVisina/100)),0);
nStarost := round(months_between(dPregled,dRodjen),0);
if nStarost>228 -- 19 godina
then
nPothranjen := 14;
nMrsav := 18;
nNormalan := 25;
nGojazan := 30;
nPrekomjeran := 35;
else
select per_3, per_15, per_85, per_97, per_99
into nPothranjen, nMrsav, nNormalan, nGojazan, nPrekomjeran
from percentile
where pol=cPol and mjesec=nStarost;
end if;
nMinTezina := ceil(nMrsav*(nVisina/100)*(nVisina/100));
nMaxTezina := floor(nNormalan*(nVisina/100)*(nVisina/100));
if (nPothranjen>0 and nBMI<=nPothranjen)
then
cBMIText := 'Ekstremna pothranjenost';
elsif (nBMI>nPothranjen and nBMI<=nMrsav)
then
cBMIText := 'Pothranjenost';
elsif (nBMI>nMrsav and nBMI<=nNormalan)
then
cBMIText := 'Normalna tjesna masa';
elsif (nBMI>nNormalan and nBMI<=nGojazan)
then
cBMIText := 'Prekomjerna tjesna masa';
elsif (nBMI>nGojazan)
then
cBMIText := 'Gojaznost (pretilost)';
else
cBMIText := '?????';
end if;
if nStarost>72
then
cBMIText := cBMIText || ', idealno ' || nMinTezina || '-' || nMaxTezina ||'kg';
end if;
return(cBMIText);
exception when others then return(null);
end calcBMI;
/
И я не знаю, как передать параметры этой функции, поэтому он может вычислить индекс массы тела. Мне удалось выбрать всю информацию из таблицы с этим PHP код:
// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$query = "SELECT * FROM PERCENTILE";
if ($result = mysqli_query($conn , $query)) {
echo("<div class = 'data_wrapper'>");
// Display Header of the table
$fieldcount=mysqli_num_fields($result); //value = number of columns
$row = mysqli_fetch_assoc($result); //Fetch a result row as an associative array:
//array to string conversion
echo("<table id='example' class='table table-striped table-bordered' cellspacing='0' width='100%'>");
echo("<thead> <tr>");
foreach($row as $item){
echo "<th>" .$item. "</th>";
}
echo("</tr> </thead>");
//Footer
echo("<tfoot> <tr>");
foreach($row as $item){
echo "<th>" .$item. "</th>";
}
echo("</tr> </tfoot>");
//Display Data within the table
echo("<tbody>");
while ($row = mysqli_fetch_assoc($result)){
echo "<tr>";
foreach ($row as $item){
echo "<td contenteditable = 'true'>" . $item . "</td>"; //Change contenteditable later
//Editable data should be constricted, int = numbers only, string = words, date = date
}
echo "</tr>";
}
echo("<tbody>");
echo "</table>";
echo("</div>");
}
/* close connection */
$mysqli->close();
Но я просто не могу понять, как сделать параметры пользователей перейти к функции. Пожалуйста помоги!
Большое спасибо!
http://php.net/manual/en/pdo.prepared-statements.php – Whencesoever
это ваш SQL $ SQL = «вызов calcBMI (сП ol, dPregled date, dRodjen, nVisina, nTezina) "; –