树莓派上的数据库路径
Database path on raspberry
我是 raspberry 的新手,我正在尝试从 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" 的 table。我将数据库放在 \var\www\html 文件夹中(正确吗?)但是当我打开页面时,我看到一个空白页面。我确定数据库包含 table (使用 sqlite3 命令测试)并且 table 包含一行。我需要把数据库放在哪里?为什么我什么都看不到?谢谢
如果您没有看到任何内容,我认为这是 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();
我解决了:我再次输入命令
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_open这个版本的sqlite不支持。
现在一切正常
我是 raspberry 的新手,我正在尝试从 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" 的 table。我将数据库放在 \var\www\html 文件夹中(正确吗?)但是当我打开页面时,我看到一个空白页面。我确定数据库包含 table (使用 sqlite3 命令测试)并且 table 包含一行。我需要把数据库放在哪里?为什么我什么都看不到?谢谢
如果您没有看到任何内容,我认为这是 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();
我解决了:我再次输入命令
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_open这个版本的sqlite不支持。 现在一切正常