【发布时间】:2015-08-13 22:24:50
【问题描述】:
这是我的代码
<?php
Id =$_GET['ID'];
error_reporting(0);
$con = mysql_connect("localhost","root","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("ehealth monitoring", $con);
$sth = mysql_query("SELECT DateandTime,BP FROM table WHERE ID='".$Id."'");
$rows = array();
$rows['name'] = 'BP';
while($r = mysql_fetch_array($sth)) {
$rows['data'][] = [$r['DateandTime'],$r[eval('BP')]];
}
echo json_encode($rows, JSON_NUMERIC_CHECK);
mysql_close($con);
?>
在此代码中,BP 包含 100/77、100/50、99/45 种值。 我想将此值转换为十进制。我找不到我的错误。请帮我转换值并将值传递给 json。
【问题讨论】:
-
您正在将字符串
BP评估为 PHP 代码。不是值,而是字符串。您的意思是使用eval($r['BP'])吗?同样,简单地将字符串拆分为斜线并进行常规除法,而不是依赖 EVAL。当恶意数据在您的数据库中并在您的源代码中被评估时会发生什么? -
感谢您的回复。我不知道 eval.. 只是我试过了。如果您有任何代码,我该如何转换值??@h2ooooooo
-
您知道该值将是
number/number。用$fractions = explode('/', $r['BP'])拆分并像$fractions[0] / $fractions[1]一样计算它。另请注意,您的代码使用的是过时的mysql库(使用mysqli_或PDO),并且您的代码对 SQL 注入开放(您需要转义或绑定变量)。 -
谢谢先生您的想法@h2ooooooo
-
@h2ooooooo 感谢先生其作品