1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-24 23:32:10 +01:00
Files
archived-doc-de/reference/sqlite/functions/sqlite-popen.xml
2010-03-29 00:47:47 +00:00

136 lines
4.9 KiB
XML
Executable File

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: lapistano Status: ready -->
<refentry xml:id="function.sqlite-popen" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>sqlite_popen</refname>
<refpurpose>
Öffnet eine persistente Verbindung zu einer SQLite-Datenbank und erzeugt diese im Bedarfsfall
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>sqlite_popen</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer>0666</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter role="reference">error_message</parameter></methodparam>
</methodsynopsis>
<simpara>
Diese Funktion verhält sich identisch zu <function>sqlite_open</function>
mit dem Unterschied, dass sie den persistenten Mechanismus von PHP nutzt.
Detailliertere Informationen, was die Parameter bedeuten, finden Sie in der
Dokumentation zu <function>sqlite_open</function>.
</simpara>
<para>
<function>sqlite_open</function> testet als erstes, ob schon eine persistente
Verbindung für den übergebenen <parameter>filename</parameter> existiert.
Wenn eine Verbindung gefunden wird, wird diese zurückgegeben,
ansonsten wird eine neue aufgebaut.
</para>
<para>
Der Vorteil dieser Methode ist, dass Sie nicht die Leistungseinbußen in
Kauf nehmen müssen, die wiederholtes Lesen der Datenbank und des Index-Schemas
bei jedem Aufruf der Seite, welche durch die persistente Webserver SAPI
(jede SAPI außer für reguläre CGi und CLI) ausgeliefert wird, mit sich bringt.
</para>
<note>
<simpara>
Wenn Sie persistente Verbindungen nutzen und Sie die Datenbank mittels einees
Hintergrund-Prozesses (vielleicht mittels der crontab) aktualisieren und
dieser Prozess die Datenbank wiederherstellt in dem er diese überschreibt
(entweder durch Löschen und Wiederherstellen oder durch Verschieben der
aktualisierten Version an die Stelle der aktuellen Version,
um diese dadurch zu ersetzen), kann es zu einem undefinierten Verhalten kommen,
wenn die persistente Verbindung, welches noch auf die 'alte' Version der Datenbank
zeigt, wiederverwendet wird.
</simpara>
<simpara>
Um diese Situation zu verhindern, sollten die Hintergrund-Prozesse die selbe
Datenbank nutzen und ihre Änderungen innerhab einer 'transaction' verrichten.
</simpara>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
Der Dateiname der SQLite-Datenbank. Wenn die Datei nicht existiert, wird
SQLite versuchen diese zu erzeugen. PHP muss dem zur Folge Schreibzugriff
auf die Datei haben, in die Daten eingefügt oder das Datenbank-Schema geändert
werden soll oder die angelegt wird, wenn sie nicht existiert.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Der Modus der Datei. Vorgesehen für den Fall, dass die Datenbank im
Nur-Lesen-Modus geöffnet werden soll. Dieser Parameter wird im Moment
von der SQLite-Biblothek ignoriert. Der Standardwert für den Modus ist
der oktale Wert <literal>0666</literal>. Dies ist auch der empfohlene
Wert des Parameters.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>error_message</parameter></term>
<listitem>
<para>
Wird als Referenz übergeben und beinhaltet im Fehlerfall eine
aussagekräftige Fehlermeldung, die erklärt, warum die Datenbank nicht
geöffnet werden konnte.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Liefert eine Ressource (Datenbank-Vebindung), wenn die Zuteilung einer
Verbindung erfolgreich war, ansonsten &false;.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>sqlite_open</function></member>
<member><function>sqlite_close</function></member>
<member><function>sqlite_factory</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->