php-doc-en/reference/sqlite/functions/sqlite-open.xml
2013-06-18 05:36:30 +00:00

166 lines
5.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.sqlite-open" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>sqlite_open</refname>
<refpurpose>Opens an SQLite database and create the database if it does not exist</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>sqlite_open</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>
<para>&style.oop; (constructor):</para>
<constructorsynopsis>
<modifier>final</modifier> <modifier>public</modifier> <methodname>SQLiteDatabase::__construct</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>
</constructorsynopsis>
<para>
Opens an SQLite database or creates the database if it does not exist.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
The filename of the SQLite database. If the file does not exist, SQLite
will attempt to create it. PHP must have write permissions to the file
if data is inserted, the database schema is modified or to create the
database if it does not exist.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
The mode of the file. Intended to be used to open the database in
read-only mode. Presently, this parameter is ignored by the sqlite
library. The default value for mode is the octal value
<literal>0666</literal> and this is the recommended value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>error_message</parameter></term>
<listitem>
<para>
Passed by reference and is set to hold a descriptive error message
explaining why the database could not be opened if there was an error.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns a resource (database handle) on success, &false; on error.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>sqlite_open</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
$result = sqlite_query($db, 'select bar from foo');
var_dump(sqlite_fetch_array($result));
} else {
die($sqliteerror);
}
?>]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<tip>
<simpara>
On Unix platforms, SQLite is sensitive to scripts that use the fork() system call. If you
do have such a script, it is recommended that you close the handle prior
to forking and then re-open it in the child and/or parent.
For more information on this issue, see
<link xlink:href="&url.sqlite.interface.c;">The C language interface
to the SQLite library</link> in the section entitled
<literal>Multi-Threading And SQLite</literal>.
</simpara>
</tip>
<tip>
<simpara>
It is not recommended to work with SQLite databases mounted on NFS
partitions. Since NFS is notoriously bad when it comes to locking you
may find that you cannot even open the database at all, and if it
succeeds, the locking behaviour may be undefined.
</simpara>
</tip>
<note>
<simpara>
Starting with SQLite library version 2.8.2, you can specify
<literal>:memory:</literal> as the <parameter>filename</parameter> to
create a database that lives only in the memory of the computer.
This is useful mostly for temporary processing, as the in-memory
database will be destroyed when the process ends. It can also be
useful when coupled with the <literal>ATTACH DATABASE</literal> SQL
statement to load other databases and move and query data between them.
</simpara>
</note>
<note>
<simpara>
SQLite is &safemode; and open_basedir aware.
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>sqlite_popen</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
-->