downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

sqlite_popen> <sqlite_num_rows
Last updated: Fri, 13 Nov 2009

view this page in

sqlite_open

(PHP 5, PECL sqlite >= 1.0.0)

sqlite_openAbre um banco de dados SQLite. Irá criar o banco de dados se ele não existir

Descrição

resource sqlite_open ( string $filename [, int $mode [, string $&error_message ]] )

Retorna um recurso(conexão com o banco de dados) se funcionar, FALSE on error.

O parâmetro filename é o nome do banco de dados. Pode ser um caminho relativo ou absoluto para o arquivo que o sqlite irá usar para guardar os seus dados. Se o arquivo não existir, o sqlite tentará cria-lo. Você DEVE ter permissões de escrita para o arquivo caso você queira inserir dados ou modificar o seu banco de dados.

O parâmetro mode especifica o modo que o arquivo será aberto. A intenção é para ser usado para abrir o banco de dados em modo somente-leitura. Atualmente, este parâmetro é ignorado pela biblioteca sqlite. O valor padrão é o valor octal 0666 e este é o valor recomendado se você precisa usar o parâmetro errmessage .

errmessage é passado por referencia para conter uma mensagem de erro descritiva explicando porque o banco de dados não pôde ser aberto se houver um erro.

Exemplo #1 Exemplo sqlite_open()

<?php
if ($db sqlite_open('mysqlitedb'0666$sqliteerror)) {
  
sqlite_query('CREATE TABLE foo (bar varchar(10))');
  
sqlite_query("INSERT INTO foo VALUES ('fnord')");
  
$result sqlite_query('select bar from foo');
  
var_dump(sqlite_fetch_array($result));
} else {
  die (
$sqliteerror);
}
?>

Dica

Em plataformas Unix, SQLite é sensível a scripts que usam a chamada do sistema fork(). Se você tem um script como esse, é recomendavel que você feche o banco de dados antes de usar o fork() e abra-o novamente no outro processo. Para maiores informações sobre isto, veja » The C language interface to the SQLite library na seção entitulada Multi-Threading And SQLite.

Dica

Não é recomentado trabalhar com banco de dados SQLite sobre partições NFS. Desde que NFS é notoriamente ruim quando se usa travas você vai achar que não pode abrir o banco de dados, e se abrir, o funcionamento das travas será indefinido.

Nota: Apartir da versão 2.8.2 da biblioteca do SQLite, você pode especificar :memory: como o parâmetro filename para criar um banco de dados que vive somente na memória do computador. Isto é útil principalmente para processar algo temporário, já que o banco de dados na memória será destruidoas ao final do processo. Também pode ser útil quando usado com o SQL ATTACH DATABASE para abrir outros banco de dados e realizar uma query entre eles.

Nota: SQLite é safe mode e a par do open_basedir.

Veja também sqlite_popen(), sqlite_close() e sqlite_query().



sqlite_popen> <sqlite_num_rows
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
sqlite_open
simplersolution at gmail dot com
07-Dec-2007 02:46
I found that both the file and the directory it is in have to be writeable by the web server, or an ambiguous "unable to open database file" error appears (pecl 1.0.3).  I pulled my hair out for ages before I realised that.
Phillip Berndt
02-Mar-2007 02:52
If you miss to set the permissions mentioned by ivoras Sqlite will drop an error message saying "Malformed database scheme", which is somehow misleading.

(I mentioned this as some [I did] might search php.net for this error message)
15-Nov-2006 10:45
the above example dows not! work since sqlite_query() does not accept one argument, but only 2.

so correct is:

<?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);
}
?>
ivoras at fer dot hr
26-May-2004 05:46
Since sqlite uses a journal to do updates and inserts (and creates it on the fly), you ALSO must have write permissions set for the web server to write in the same DIRECTORY as the database file.

sqlite_popen> <sqlite_num_rows
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites