You can try setting a temp or tmp or tempdir environment variable on the server, however, as I said in the previous post, I am not sure if it will work.
Probably the safest and most robust way would be to have your code call the pragma temp_store_directory directly after opening the database. How your code knows what directory to call the pragma with could be done with an environment variable or whatever you prefer. Artur Reilin wrote: > I collect some things now: > > My hoster: > > pdo_sqlitePDO Driver for SQLite 3.x enabled > PECL Module version 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.4 2008/12/31 > 11:17:42 sebastian Exp $ > SQLite Library 3.3.8 > > SQLiteSQLite support enabled > PECL Module version 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.12 2008/12/31 > 11:17:44 sebastian Exp $ > SQLite Library 2.8.17 > SQLite Encoding UTF-8 > > > My home server: > > pdo_sqlitePDO Driver for SQLite 3.x enabled > SQLite Library 3.6.20 > > SQLiteSQLite support enabled > PECL Module version 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.9.2.22 > 2009/06/25 09:38:04 johannes Exp $ > SQLite Library 2.8.17 > SQLite Encoding iso8859 > > sqlite3SQLite3 support enabled > SQLite3 module version 0.7-dev > SQLite Library 3.6.16 > > --------------- > > Seems that there are missing the sqlite3 library, but i use 2.8.17, > because the sqlite 3 version don't work on both systems. > > Okay, should i ask my hoster if they there is an way, to set the default > path to tmp dir from the server? This should normaly so, or? > > with best wishes > > Artur > > --------------- >> 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 > > > > 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