php / php/php-src

SQLite: PDOException: open_basedir prohibits opening :memory:?cache=shared

Aperta
#20,076 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@ndossche ci sta già lavorando.

Dal 6/10/2025.

  • #20080 di @ndossche — aperta
Bug Extension: pdo_sqlite Extension: sqlite3 Status: Verified
Lingua principale
C
Stelle
40.4k
Fork
8.1k
Merge medio
2g 13h
PR unite (30g)
96

Descrizione

Description

The following code:

#!/usr/bin/env php
<?php

print "open_basedir: ";
var_dump(ini_get("open_basedir"));
print "\n";

$db = new \PDO("sqlite::memory:?cache=shared", null, null, [
    \PDO::ATTR_PERSISTENT => true,
    \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
    \PDO::ATTR_EMULATE_PREPARES => false,
    \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
]);

Resulted in this output:

$ ./sqlite-nomemory.php
open_basedir: string(0) ""

PHP Fatal error:  Uncaught PDOException: open_basedir prohibits opening :memory:?cache=shared in …\sqlite-nomemory.php:8
Stack trace:
#0 …\sqlite-nomemory.php(8): PDO->__construct('sqlite::memo
ry:...', NULL, Object(SensitiveParameterValue), Array)
#1 {main}
  thrown in …\sqlite-nomemory.php on line 8

But I expected this output instead:

I expected no error. Frankly, the code should just work.
PHP Version
PHP 8.4.13 (cli) (built: Sep 23 2025 15:17:09) (ZTS Visual C++ 2022 x64)
Copyright (c) The PHP Group
Zend Engine v4.4.13, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.13, Copyright (c), by Zend Technologies
Operating System

Windows 10

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia eseguendo la riproduzione sqlite-nomemory.php su Windows 10 con PHP 8.4.13 e analizza la gestione di PDO SQLite raggiunta dal costruttore PDO. Il lavoro è completato quando la connessione mostrata sqlite::memory:?cache=shared riesce senza l'eccezione open_basedir; è già collegata una pull request aperta.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
php, sqlite
Ambito
database
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
20/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.