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>

该数据库是“miodatabase”,其中包含一个名为“test”的表。我将数据库放在 \var\www\html 文件夹中(正确吗?),但是当我打开页面时,我看到一个空白页面。我确定数据库包含表(使用 sqlite3 命令测试)并且表包含一行。我需要把数据库放在哪里?为什么我什么都看不见?谢谢

4

2 回答 2

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();
于 2016-04-29T23:19:10.763 回答
0

我解决了:我再次输入命令

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

然后我可以在 php 信息中看到有关 sqlite3 的部分。我像这样更新我的php页面:

//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>";

打开我现在使用的数据库

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

因为这个版本的 sqlite 不支持 sqlite_open。现在一切正常

于 2016-04-30T08:27:23.240 回答