Razorflow Php 错误:遇到格式不正确的数值

Posted

技术标签:

【中文标题】Razorflow Php 错误:遇到格式不正确的数值【英文标题】:Razorflow Php error :A non well formed numeric value encountered 【发布时间】:2019-11-17 16:35:45 【问题描述】:

RazorFlow php 是一个 PHP 框架,可用于构建交互式数据驱动仪表板,可在 PC、Mac、平板电脑和智能手机上运行。 razorflow php 中提供了 11 个演示项目。这是其中之一。我想知道它是如何工作的。我检查了 razorflow.php 和 $dataSource 的路径。

<?php
require "../razorflow.php";
Dashboard::setTitle("Drill-down in same chart");

$dataSource = new SQLiteDataSource("databases/birt.sqlite");
$dataSource->setSQLSource("payments JOIN customers ON payments.customerNumber = customers.customerNumber");

$drillCategory = new ChartComponent();
$drillCategory->setWidth(4);
$drillCategory->setCaption("Drill-down by category", "Sales for value");
$drillCategory->setYAxis("Sales", array('numberPrefix' => "$"));
$drillCategory->setDataSource($dataSource);
$drillCategory->setLabelExpression("Location", "customers.country", array(
    'drillPath' => array('customers.country', 'customers.state', 'customers.city', 'customers.customerName')
));
$drillCategory->addSeries("Sales", "payments.amount", array(
    'displayType' => 'Column'
));
Dashboard::addComponent($drillCategory);

$drillTime = new ChartComponent();
$drillTime->setCaption("Drill-down by time", "Sales for value");
$drillTime->setYAxis("Sales", array('numberPrefix' => "$"));
$drillTime->setWidth(4);
$drillTime->setDataSource($dataSource);
$drillTime->setLabelExpression("Time", "payments.paymentDate", array(
    'timestampRange' => true,
    'autoDrill' => true
));
$drillTime->addSeries("Sales", "payments.amount", array(
    'displayType' => 'Column'
));
Dashboard::addComponent($drillTime);

Dashboard::Render();

但是,我无法成功运行此代码。它总是以这个错误结束。

消息: 遇到一个格式不正确的数值 Trace: C:\xampp\htdocs\rf_4\core\internal\RFDbDataSource.php:86 C:\xampp\htdocs\rf_4\demos\chart_drilldown1.php:6

提前致谢。

【问题讨论】:

【参考方案1】:
 $totalTime = microtime() - $startTime;

错误(遇到格式不正确的数值)参考上面RFDbDataSource.php中的代码行。

Microtime 返回当前的 Unix 时间戳,单位为微秒。

microtime() 参数的默认值为 false。以真假为参数值的微时间结果:

microtime()     - as string 
microtime(true) - as float

由于,我们对 microtime() 值进行减法运算。 microtime() 应该是浮点数或数字。所以,将microtime() 更改为microtime(true) 能够解决错误(遇到格式不正确的数值)。

【讨论】:

以上是关于Razorflow Php 错误:遇到格式不正确的数值的主要内容,如果未能解决你的问题,请参考以下文章

PHP注意:遇到格式不正确的数值[重复]

使用Jquery.AJAX方法和PHP后台数据交互小结

Swift/MySql/PHP - “无法读取数据,因为它的格式不正确。”错误

PHP json 编码 - 格式错误的 UTF-8 字符,可能编码不正确

CodeIgniter:遇到格式不正确的数值

PHP 将格式错误的UTF-8 HTML转换为正确格式的UTF-8纯文本字符串。