Wolf
Folgendes Script:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
<?
sqlite_open("data");
$abfrage = sqlite_query(resource "data", string "SELECT Name, Message FROM book");
while($row = sqlite_fetch_object($abfrage))
{
echo $row->Name;
echo ": "
echo $row->Message;
echo "<br /><br />"
}
?> |
|
Gibt folgenden Fehler aus:
| Zitat: |
| Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Programme\xampp\xampplite\htdocs\bla.php on line 4 |
Was heißt das und wie kann ich das beheben?
thx
Prophet
Ich php werden typen nie angegeben das wird in der regel automatisch gemacht!
ich bin mir zwar nicht sicher aber ich glaube man kann mit hilfe des typ ind klammern vorrann gestellt typen erzwingen...
Chris Hunter
was ist den sqlite?!?
| Zitat: |
Original von Prophet
Ich php werden typen nie angegeben das wird in der regel automatisch gemacht!
ich bin mir zwar nicht sicher aber ich glaube man kann mit hilfe des typ ind klammern vorrann gestellt typen erzwingen... |
joa, das stimmt...
Prophet
eine datenbank anwendung wie mysql.
Chris Hunter
aber nicht ganz so verbreitet, oder? also ich hab noch nie was davon gehört...
...kann das was?
Chris Hunter
mmmh das is ja schräg.... dann werden die daten quasi auf dem webspace in dateien abgelegt so wie es aussschaut...
Prophet
auch nicht schlecht... vll sollte ich mich auch mal damit beshäftigen...
Wolf
Das gute daran ist, dass du dier den ganzen Kram mit connect und Rechteverteilung sparen kannst, weil der Webserver die Daten schreibt. Du hast also quasi immer root-Rechte, dafür kann kein Anderer Server in der DB arbeiten, müsste aber mit einem Skript auch gehen. Von der Größe der db her sollte man für flüssige Arbeit unter 2 terabyte bleiben. Das absolute Limit ist dann
http://sqlite.org/faq.html#q10
PS:
Mein Skript geht immer noch nicht. Code:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
<?
sqlite_open("data");
$abfrage = sqlite_query("data", "SELECT Name, Message FROM book");
while($row = sqlite_fetch_object($abfrage))
{
echo $row->Name;
echo ": ";
echo $row->Message;
echo "<br /><br />";
}
?> |
|
Fehler:
| Zitat: |
Warning: sqlite_query() expects parameter 1 to be resource, string given in C:\Programme\xampp\xampplite\htdocs\bla.php on line 4
Warning: sqlite_fetch_object() expects parameter 1 to be resource, null given in C:\Programme\xampp\xampplite\htdocs\bla.php on line 6 |
p-Logic
| Zitat: |
Original von Wolf
Von der Größe der db her sollte man für flüssige Arbeit unter 2 terabyte bleiben. Das absolute Limit ist dann http://sqlite.org/faq.html#q10
|
Hm. Könnte knapp werden...
Ne "echte" DB ist mir trotzdem lieber.
Mit so was neumodischem wird das Backup viel zu einfach!
[/ironie]
Hm, dass immer die ganze DB bei schreib zugriff gesperrt wird ist zwar einleuchtend (wird ja in ne Datei geschrieben), aber bei größeren Projekten find ich das schon relativ hinderlich...
Files sind für Files und DBs sind für DBs, basta
edit:-------------------------------------------------
| Zitat: |
Original von Wolf
Mein Skript geht immer noch nicht. Code:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
<?
sqlite_open("data");
$abfrage = sqlite_query("data", "SELECT Name, Message FROM book");
while($row = sqlite_fetch_object($abfrage))
{
echo $row->Name;
echo ": ";
echo $row->Message;
echo "<br /><br />";
}
?> |
|
Fehler:
| Zitat: |
Warning: sqlite_query() expects parameter 1 to be resource, string given in C:\Programme\xampp\xampplite\htdocs\bla.php on line 4
Warning: sqlite_fetch_object() expects parameter 1 to be resource, null given in C:\Programme\xampp\xampplite\htdocs\bla.php on line 6 |
|
Junge, mach doch einfach, was der Interpreter dir sagt
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
<?
sqlite_open("data");
//Warning: sqlite_query() expects parameter 1 to be resource, string
// Na, wo ist denn der String?
$abfrage = sqlite_query("data" /* <- Da muss deine DB resource hin und kein String */, "SELECT Name, Message FROM book");
while($row = sqlite_fetch_object($abfrage))
//sqlite_fetch_object() expects parameter 1 to be resource, null given in
// Der wird sich auch geben...
{
echo $row->Name;
echo ": ";
echo $row->Message;
echo "<br /><br />";
}
?> |
|
Wolf
Sorry ich peil grad garnix
Was heist denn "to be resource" auf deutsch? Mein Englisch ist leider nicht allzu berauschend, jedenfalls was PHP-Fehlermeldungen angeht... Solange ich den interpreter nicht verstehe, kann ich auch schlecht machen was er sagt
PS: Mal gucken ob meine db jemals die 2mb-Grenze knackt
p-Logic
| Zitat: |
Warning: sqlite_query() expects parameter 1 to be resource, string given in
Warnung: sqlite_query() erwartet als ersten Parameter eine (sqlite-)Resource, hat aber einen String erhaltem
C:\Programme\xampp\xampplite\htdocs\bla.php on line 4
Warning: sqlite_fetch_object() expects parameter 1 to be resource, null given in
Warnung: aplite_fetch_object() erwartet als ersten Parameter eine (splite-)Resource, hat aber NULL erhalten (weil sqlite_query fehl geschlagen ist)
C:\Programme\xampp\xampplite\htdocs\bla.php on line 6 |
Was für eine Resource wird erwartet?
| Zitat: |
sqlite_open
(PHP 5)
sqlite_open -- Öffnet eine SQLite Datenbank. Wenn die Datenbank nicht existiert, wird sie erzeugt.
Beschreibung
resource sqlite_open ( string Datei [, int mode [, string &Fehler]] ) |
(gibt eine resource zurück)
| Zitat: |
sqlite_query
(PHP 5)
sqlite_query -- Führt auf einer Datenbank eine Abfrage durch und liefert das Abfrageergebnis zurück.
Beschreibung
resource sqlite_query ( resource db, string Abfrage )
resource sqlite_query ( string Abfrage, resource db ) |
(erwartet eine resource)
Beispiel:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
|
<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
// So sollte man es nach dem php.net Beispiel machen:
sqlite_query('CREATE TABLE foo (bar varchar(10))');
sqlite_query("INSERT INTO foo VALUES ('fnord')");
$result = sqlite_query('select bar from foo');
// Wobei das eher den obigen Funktions Prototypen wiederspricht X(
// Probier mal aus, was funzt, mein Vorschlag wäre:
$result = sqlite_query($db, "SELECT bar FROM foo");
var_dump(sqlite_fetch_array($result));
} else {
die ($sqliteerror);
}
?> |
|
Quelle: php.net
Wolf
Danke, ich glaube der Code ist soweit richtig, aber irgendwie behaubtet er, die Tabelle existiert nicht. Ich hab alles 5 mal auf die Rechtschreibung gecheckt, aber ich hab alles richtig geschrieben.
Der Code:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
<?
$db = sqlite_open('data', 0666, $sqliteerror);
$abfrage = sqlite_query($db, "SELECT Name, Message FROM book");
while($row = sqlite_fetch_object($abfrage))
{
echo $row->Name;
echo ": ";
echo $row->Message;
echo "<br /><br />";
}
?> |
|
Kann die Fehlermeldung auch durch was anderes kommen?
daHooligan
na ja.... besteht die Tabelle denn??
durch was anderes kann es eigentlich nicht kommen...
hast du auch auf die groß/kleinschriebung geachtet?
ansonsten setz mal irgendow ein "echo $db;" rein, dann siehst du ob die Verbinsung zustade kommt, wenn nicht liegt der irgendwo in dem "sqlite_open", evtl. in dem "0666", kp was das bedeuten soll steht ber auf php.net auch im Befehl kp wie gesagt
Wolf
Beim echo $db; sagt er:
und, dass die Tabelle nicht existiert.
Groß- & Kleinschreibung stimmt.
/edit:
Juhuu, ich habs gefunden:
die db-Datei war im Ordner vom SQLite-Admin, mein Skript nicht.
daHooligan
| Zitat: |
Original von daHooligan
na ja... besteht die Tabelle denn?? |
nun ja... besteht die Tabelle denn??
nein!
und was sagt der Fehler denn??
und jetzt mal eine Frage: wie viel ahnung hast du von sqlite/SQL/MySQL oder PHP?
da krich isch Plak von sowat.
und jetzt erzeug mal ne tabelle und bevor du wieder fragst: schau mal selber auf php.net nach... und jetzt frag nicht wie man ne tabelle erstellt. das steht höchst ausführlich auf php.net
Wolf
| Zitat: |
| und jetzt mal eine Frage: wie viel ahnung hast du von sqlite/SQL/MySQL oder PHP? |
Eben nicht besonders viel. Das ist auch der Grund für meine Frage. SQLite hab ich mit einem normalen sql-tutorial gelernt (deswegen wusste ich das mit der Datei nicht) und php mit dem von
schattenbaum.net. Reg dich mal ab...