Rolf B: PHP PDO:SQLITE - Falle: attempt to write a readonly database - und kein TRUNCATE table in SQLITE

Beitrag lesen

Hallo Raketenleichtmatrose,

tja, was heißt eleganter. Die Prüfungen müssen ja stattfinden.

Wäre dies hier für Dich eleganter? Hab's jetzt nicht wirklich durchgetestet 😉

function PDOSQLite3Connect ( $SQLite3File, $PDOReadOnly ) {

  try
  {
    ensure( PDOReadOnly || is_writable( $SQLite3File ),
      '(PDO): Datei "' . $SQLite3File - '" muss beschreibbar sein.' );
    ensure( PDOReadOnly || is_writable( dirname( $SQLite3File ) ),
      '(PDO): Verzeichnis "' . dirname( $SQLite3File ) - '" muss beschreibbar sein.' );

    ensure( $pdo = new PDO( 'sqlite:' . $SQLite3File,
      'Datenbankverbindung zu "sqlite:' . SQLite3File . '" hat nicht funktioniert.');
    return $pdo;
  }
  catch (AssertionError $err)
  {
    errorLog( $err->getMessage() );
    showErrorMsg();
  }
}

function ensure( $condition, $message ) {
   if ($condition)
      return;

   throw new AssertionError($message);
}

Rolf

--
sumpsi - posui - obstruxi