You could also set the temp_store pragma such that *most* temp files are 
created in memory.  I say most, because even though you set temp_store 
to memory, there is still one temporary file(statement journal) which 
will still need to use the temp_store_directory.

I suppose another possibility is to set the temp environment variable.

I have just noticed that your version of sqlite is way old... so I'm 
very unsure if anything I've suggested is of any use.  I know the 
environment variable did not work in 3.5.9, but does in 3.6 and up.

Artur Reilin wrote:
> I can, but doesn't there exists an another way?
>
>
>> I believe you can specify the directory in which temporary files will be
>> created.  This is done with pragma temp_store_directory.  I think you
>> can also set this in compilation.
>>
>> Artur Reilin wrote:
>>>
>>>>
>>>> On 19 Nov 2009, at 8:05am, Artur Reilin wrote:
>>>>
>>>>> My host have sqlite support vor sqlite 2.8.17 and i can use it. But i
>>>>> have
>>>>> to give chMod 0777 to the directory where i use sqlite. Not only on
>>>>> the
>>>>> directory, that contains the sqlite database. let me show it:
>>>>>
>>>>> /index.php (uses sqlite database)
>>>>> /data/data.sqlite (sqlite database)
>>>>>
>>>>> If i give chMod 0777 to /data/ and the files in this folder, it
>>>>> wouldn't
>>>>> work and get me an "malformed database - cannot create temp tables".
>>>>>
>>>>> I need to gibe chMod to the directory which contains the index.php
>>>>> file.
>>>>> That's a big security risk and i don't want to give chMod to the main
>>>>> directory.
>>>>>
>>>>> Is this normal and can i change this?
>>>>
>>>> You do not actually need 0777.  Your problem is that the user which is
>>>> creating and using the database is the user that runs Apache, not
>>>> yourself.  So find out which user Apache runs under.  This might be
>>>> perhaps www or _www or _apache.  Make sure that that user has the
>>>> rights
>>>> over this directory.  Then Apache (running the .php script) which have
>>>> enough access to use the database file.
>>>>
>>>> Simon.
>>>
>>> The user which runs php (or has the highest rights) is called nobody.
>>> The
>>> support said me, that i need to set the directory to this user, but it
>>> also don't work. I get the same error as before. I can try it again, but
>>> the last time it didn't work.
>>>
>>> I also wondering why my oop version of my script didn't work, but the
>>> prozedural one does. They have pdo drivers like mine xampp server, but
>>> they don't have the sqlite3 drivers. Perhaps this also happens because
>>> of
>>> the malformed database error...
>>>
>>> With best wishes
>>>
>>> Artur Reilin
>>> sqlite.yuedream.de
>
> Artur Reilin
> sqlite.yuedream.de
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to