2016-04-29 7 views
0

私はラズベリーで新しく、PHPページから簡単なデータベースを読み込もうとしていますが、何か間違っています:データベースコンテンツを読むことができません:ここでPHPページコード:ラズベリーのデータベースパス

<!DOCTYPE html> 
<html> 
<body> 
<H1>Test Database</H1> 

<?php 

$sq = sqlite_open('miodatabase.db', 0666, $sqlite_error); 

if(!$sq) 
{ 
    die(“Errore Sqlite: “.$sqlite_error); 
} 

$result = sqlite_query($sq, 'select * from test'); 
while($data = sqlite_fetch_array($result)) 
{ 
    echo $data[‘nome’]; 
} 
sqlite_close($sq); 
?> 

</body> 
</html> 

データベースは、 "test"というテーブルを含む "miodatabase"です。私はデータベースを\ var \ www \ htmlフォルダに置いていますが(正しいのですか?)、ページを開くと空白のページが表示されます。私はデータベースが(sqlite3コマンドでテストされた)テーブルを含んでいると確信して、テーブルは1つの行が含まれています。どこにデータベースを置く必要がありますか?なぜ私は何も見ることができないのですか?ありがとう

答えて

0

に従って使用している場合、私は解決:私は、コマンドを再度

sudo apt-get install php5-sqlite 
sudo /etc/init.d/apache2 restart 

を入力し、私は、PHPの情報で見ることができますsqlite3に関するセクションsqlite_openはsqliteのこのバージョンでサポートされていないので、私は今

$db = new SQLite3("miodatabase.db"); 

使用するデータベースを開くには

//Enable show error 
ini_set('display_errors', 'On'); 
error_reporting(E_ALL|E_STRICT); 


$db = new SQLite3("miodatabase.db"); 

$sql_select='SELECT * FROM test'; 
$result=$db->query($sql_select); 

echo "<table border='1'>"; 
echo "<tr>"; 
$numColumns=$result->numColumns(); 
for ($i = 0; $i < $numColumns; $i++) 
{ 
    $colname=$result->columnName($i); 
    echo "<th>$colname</th>"; 
} 
echo "</tr>"; 
while($row = $result->fetchArray(SQLITE3_NUM)) 
{ 
    echo "<tr>"; 
    for ($i = 0; $i < $numColumns; $i++) 
    { 
     $value=$row[$i]; 
     echo "<th>$value</th>"; 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 

: 私はこのように私のPHPのページを更新します。 すべて正常に動作します

1

何も表示されない場合は、私はそれがPHPの設定の問題だと思う。

<?php phpinfo(); ?> 

スクリプトの先頭で:

は、追加しようとしませんでした。空白のページがある場合は、apache/nginxの設定を見てください。

また、コマンドラインからスクリプトを実行することもできます。場合によっては役に立つかもしれません。

更新履歴

あなたはSQLite3のこのコード

class MyDB extends SQLite3 
{ 
    function __construct() 
    { 
     $this->open('miodatabase.db'); 
    } 
} 

$db = new MyDB(); 
$result = $db->query('select * from test', SQLITE3_OPEN_READWRITE); 

//var_dump($result->fetchArray()); 
while($data = $result->fetchArray()) 
{ 
    echo $data[‘nome’]; 
} 
$db->close(); 
+0

私はPHPの情報だけを入れて、私はPHPの情報を参照して....私はデータベースのパスに関連する問題だと思う...私はデータベースを配置することができますどのように指定することができますオープンコマンドのパス? – Lorenzo

+0

そして、www-data(またはあなたのapache/nginx unixユーザ)は 'miodatabase.db'の所有者ですか? – KerooZ

+1

簡単なテストでは、データベースをスクリプトの同じパスに置き、コードを変更する必要はありません。そうでない場合は、オープン関数でデータベースの完全パスを設定する必要があります。 '$ sq = sqlite_open( '/ var/www/html/miodatabase.db'、0666、$ sqlite_error);' – KerooZ

関連する問題