非法字符串偏移sqlite

时间:2016-09-26 19:47:11

标签: php sqlite plot

现在处理这个问题一段时间了,我无法解决这个问题。 我已经阅读过与此相似的主题,但我还是无法做到。

我尝试使用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很多!

1 个答案:

答案 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
相关问题