🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
8 messages
8 total messages Started by moblaza Sun, 10 Sep 2017 15:38
sqlite3 - php, problem ze ścieżką
#231803
Author: moblaza
Date: Sun, 10 Sep 2017 15:38
28 lines
2048 bytes
Cześć. Mam pewien problem, kiedy w konsoli z palca odpalę skrypt:

<?php
/**
 * Simple example of extending the SQLite3 class and changing the __construct
 * parameters, then using the open method to initialize the DB.
 */
class MyDB extends SQLite3
{
    function __construct()
    {
        $this->open(forum.db');
    }
}

$db = new MyDB();

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());

echo 'END.';

?>

działa on prawidłowo, jednak kiedy odpalam go w przeglądarce, wyświetlana jest pusta strona - nie odnajduje mi wskazanej bazy danych, jest ona w tym samym folderze co skrypt. Jak rozwiązać ten trywialny problem ? Dzięki.
Re: sqlite3 - php, problem ze ścieżką
#231805
Author: Borys Pogoreło
Date: Sun, 10 Sep 2017 20:47
14 lines
1291 bytes
Dnia Sun, 10 Sep 2017 08:38:34 -0700 (PDT), moblaza@gmail.com napisał(a):

> działa on prawidłowo, jednak kiedy odpalam go w przeglądarce, wyświetlana
> jest pusta strona - nie odnajduje mi wskazanej bazy danych, jest ona w
> tym samym folderze co skrypt. Jak rozwiązać ten trywialny problem ?
> Dzięki.

$this->open(__DIR__ . '/forum.db');

Wrzuć to lepiej do katalogu poza document_root.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: sqlite3 - php, problem ze ścieżką
#231804
Author: Lemat
Date: Sun, 10 Sep 2017 21:58
39 lines
2235 bytes
W dniu 10.09.2017 o 17:38, moblaza@gmail.com pisze:
> Cześć. Mam pewien problem, kiedy w konsoli z palca odpalę skrypt:
> 
> <?php
> /**
>   * Simple example of extending the SQLite3 class and changing the __construct
>   * parameters, then using the open method to initialize the DB.
>   */
> class MyDB extends SQLite3
> {
>      function __construct()
>      {
>          $this->open(forum.db');
>      }
> }
> 
> $db = new MyDB();
> 
> $db->exec('CREATE TABLE foo (bar STRING)');
> $db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");
> 
> $result = $db->query('SELECT bar FROM foo');
> var_dump($result->fetchArray());
> 
> echo 'END.';
> 
> ?>
> 
> działa on prawidłowo, jednak kiedy odpalam go w przeglądarce, wyświetlana jest pusta strona - nie odnajduje mi wskazanej bazy danych, jest ona w tym samym folderze co skrypt. Jak rozwiązać ten trywialny problem ? Dzięki.
> 

pokaż wynik funkcji:

var_dump(is_writable ( 'forum.db' ));
var_dump(is_readable ( 'forum.db' ));

-- 
Pozdrawiam
Lemat
Re: sqlite3 - php, problem ze ścieżką
#231806
Author: Maciej Obłaza
Date: Mon, 11 Sep 2017 16:37
17 lines
1784 bytes
W dniu niedziela, 10 września 2017 23:58:56 UTC+2 użytkownik Lemat napisał:

> pokaż wynik funkcji:
> 
> var_dump(is_writable ( 'forum.db' ));
> var_dump(is_readable ( 'forum.db' ));
> 
> -- 
> Pozdrawiam
> Lemat

sprawdziłem, oto rezultat:

boolean false
boolean true

Nie mam uprawnień do zapisu ?
Re: sqlite3 - php, problem ze ścieżką
#231809
Author: Maciej Obłaza
Date: Mon, 11 Sep 2017 16:46
10 lines
1705 bytes
Moje środowisko to:

1. Zend studio

2. PHP 5.6.30 (cli) (built: Feb  7 2017 16:18:37) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

3. MacOS Sierra 10.12.6
Re: sqlite3 - php, problem ze ścieżką
#231807
Author: artiun
Date: Mon, 11 Sep 2017 17:25
30 lines
2457 bytes
W dniu 2017-09-11 o 18:37, Maciej Obłaza pisze:
> W dniu niedziela, 10 września 2017 23:58:56 UTC+2 użytkownik Lemat napisał:
> 
>> pokaż wynik funkcji:
>>
>> var_dump(is_writable ( 'forum.db' ));
>> var_dump(is_readable ( 'forum.db' ));
>>
>> -- 
>> Pozdrawiam
>> Lemat
> 
> sprawdziłem, oto rezultat:
> 
> boolean false
> boolean true
> 
> Nie mam uprawnień do zapisu ?
> 
sqlite to baza plikowa. Coś jak txt trzymane w segmentach (duże 
uproszczenie). Bez zapisu masz tylko odczyt - to działa? Na chama - bazę 
otwieraj notepad'em (nic Ci to nie da) - ale będzie jasne, że czyta. Jak 
masz np. w ww. narzędziu wtyczkę powinno się to otworzyć podobnie do plików 
excela (csv) - ale i tak R(ead)O(nly).
Jest obejście, tu nie ma serwera, baza nie jest wielodostępowa, po prostu ją 
umieść na serwerze. Nie spodziewaj się cudów, typu transakcje, wielodostęp. 
SQLite jest do czegoś innego.

-- 
Artur
Re: sqlite3 - php, problem ze ścieżką
#231812
Author: Rafal Podsiadly
Date: Mon, 11 Sep 2017 17:52
10 lines
1909 bytes
Nie wiem czy moi przedmówcy zauważyli $this->open(forum.db');
Tutaj nie ma apostrofa otwierającego ciąg tekstowy.

Skoro to macOs sprawdź prawa dostępu do pliku w terminalu

ls -l

https://stackoverflow.com/questions/3319112/sqlite-read-only-database

https://books.google.pl/books?id=n5xiAgAAQBAJ&pg=PT24&lpg=PT24&dq=ls+-a+linux&source=bl&ots=1B2ULAml_c&sig=D_VCLhKO20xRio2w3Y7Q4AgwYfQ&hl=pl&sa=X&ved=0ahUKEwjWqJPr2J3WAhXrApoKHQUBB3AQ6AEIJzAA#v=onepage&q=ls%20-a%20linux&f=false
Re: sqlite3 - php, problem ze ścieżką
#231808
Author: PawelS cbrbob(at)wbcd(dot)pl
Date: Mon, 11 Sep 2017 18:23
38 lines
2186 bytes
moblaza@gmail.com pisze:
> Cześć. Mam pewien problem, kiedy w konsoli z palca odpalę skrypt:
> 
> <?php
> /**
>  * Simple example of extending the SQLite3 class and changing the __construct
>  * parameters, then using the open method to initialize the DB.
>  */
> class MyDB extends SQLite3
> {
>     function __construct()
>     {
>         $this->open(forum.db');
>     }
> }
> 
> $db = new MyDB();
> 
> $db->exec('CREATE TABLE foo (bar STRING)');
> $db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");
> 
> $result = $db->query('SELECT bar FROM foo');
> var_dump($result->fetchArray());
> 
> echo 'END.';
> 
> ?>
> 
> działa on prawidłowo, jednak kiedy odpalam go w przeglądarce, wyświetlana jest pusta strona - nie odnajduje mi wskazanej bazy danych, jest ona w tym samym folderze co skrypt. Jak rozwiązać ten trywialny problem ? Dzięki.
Porównaj poniższe ścieżki:
$_SERVER['DOCUMENT_ROOT'] i getcwd()
oraz upewnij się, że spełniony jest warunek:
http://www.php.net/manual/en/ref.pdo-sqlite.php#57356
jak również użytkownik na uprawnieniach,
którego działa interpreter PHP (Apache,php-fpm)
posiada odpowiednie uprawnienia.
Anyway: w odpowiednim error.log powinien być
wystarczająco czytelny komunikat.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads