2016-09-26 4 views
0

しばらくの間、この問題を扱ってきましたが、わかりません。 私はこれに似た話題を読んだが、とにかくできなかった。不正な文字列オフセットsqlite

私は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'); 
?> 
?> 

私はPicturehttp://www.ladda-upp.se/bilder/zltczhawdxetj

のthnxたくさんこの応答を取得したデータをダンプするとき!あなたが効果的に

$voltage[] = 'row'['voltage']; 

を実行しているPHP引用符で囲まれていない文字列として「親切」扱い、ので、未定義の定数を使用して、この「文字列の不正な文字列インデックスを使用しているので、

+2

エラーがあなたに何行 – nogad

+2

'行[ '電圧']を教えてください;' '$行[ '電圧']でなければなりません;'あなたは '$'を残しました。 – Barmar

答えて

2
$voltage[] = row['voltage']; 
       ^---missing $ 

" - 文字列を配列として扱い、個々の文字にアクセスすることはできますが、数値インデックスのみでアクセスできます。

$foo = 'hi mom'; 
echo $foo[1]; // i 
echo 'hi mom'[1]; // i 
echo foo[1]; // undefined constant foo, assumed 'foo' -> o 
+0

Aha!だから私はドル記号を追加したと予測されたインデックスのエラーで私を残します。各値をインデックスするためにデータベースに何かを追加する必要がありますか?または、私はこれをPHPで直接行うことができますか? あなたの答えはThnxです! – JHCJ

+0

数値配列( 'SQLITE_NUM')としてフェッチしたので、文字列キーはありません。数字だけです。 '$ row [0]'が動作するか、連想フェッチに切り替えるので、 '' voltage''が動作します。 –

+0

これまでのところ、私は結合フェッチに変更しましたが、代わりに電圧['電圧']を使用する代わりに、私は代わりにゼロを提案通りに入れました。次のエラーが表示されたら、「スカラー値を配列として使用できません」という質問がフォーラムで検索され、この説明が見つかりました。「理由は、まず変数を通常の整数または文字列で宣言し、それをアレイに変えようとしている」と語った。しかし、私は整数ではなく配列として可変電圧を宣言しており、問題の原因を理解することはできません。 – JHCJ

関連する問題