Я новичок в 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». Я помещаю базу данных в папку \ var \ www \ html (правильно?), Но когда я открываю страницу, я вижу пустую страницу. Я уверен, что база данных содержит таблицу (проверено с помощью команд sqlite3), и таблица содержит одну строку. Где мне нужно разместить базу данных? Почему я ничего не вижу? Спасибо
Если вы ничего не видите, я думаю, что это проблема конфигурации 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 info разделы о 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.
Теперь все работает правильно