现在处理这个问题一段时间了,我无法解决这个问题。 我已经阅读过与此相似的主题,但我还是无法做到。
我尝试使用php从sqlite数据库导入数据。我将使用数据绘制它。每当我尝试运行代码时,我都会陷入"非法字符串偏移"。
以下是代码:
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
$sql =<<<EOF
SELECT voltage from stuffToPlot;
EOF;
$voltage = array();
$ret = $db->query($sql);
while ($row = $ret->fetchArray(SQLITE3_NUM)) {
$voltage[] = row['voltage'];
//var_dump($row);
}
$graph = new Graph(300,250);
$graph->SetScale("textlin");
$theme_class=new UniversalTheme;
$graph->SetTheme($theme_class);
$graph->img->SetAntiAliasing(false);
$graph->title->Set('Filled Y-grid');
$graph->SetBox(false);
$graph->img->SetAntiAliasing();
$graph->yaxis->HideZeroLabel();
$graph->yaxis->HideLine(false);
$graph->yaxis->HideTicks(false,false);
$graph->xgrid->Show();
$graph->xgrid->SetLineStyle("solid");
$graph->xaxis->SetTickLabels(array('A','B','C','D'));
$graph->xgrid->SetColor('#E3E3E3');
$p1 = new LinePlot($voltage);
$graph->Add($p1);
$p1->SetColor("#6495ED");
$p1->SetLegend('Line 1');
?>
?>
当我转储数据时,我会收到此回复Picture http://www.ladda-upp.se/bilder/zltczhawdxetj
Thnx很多!
答案 0 :(得分:2)
$voltage[] = row['voltage'];
^---missing $
所以你正在使用一个未定义的常量,PHP“有用地”将其视为一个不带引号的字符串,因此你可以有效地运行
$voltage[] = 'row'['voltage'];
并为此“字符串”使用非法字符串索引 - 您可以将字符串视为数组并访问单个字符,但只能使用数字索引。
$foo = 'hi mom';
echo $foo[1]; // i
echo 'hi mom'[1]; // i
echo foo[1]; // undefined constant foo, assumed 'foo' -> o