webForumDet fria alternativet

sqlite_query, no such table

11 svar · 717 visningar · startad av seamonster

seamonsterMedlem sedan maj 200852 inlägg
#1

Hejsan. Håller på att lära mig SQLite just nu, men har lite problem.
Med SQLiteManager har jag skapat databasen 'domination' och tablet 'Havsmonstret'.

Sedan har jag en php fil med följande kod:

 <?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT kill FROM Havsmonstret LIMIT 0, 20', SQLITE_ASSOC);
sqlite_close($dbhandle);
echo $result
?>

Det är vad jag har försökt luska ut. Nu när jag sedan kör detta scriptet får jag ett error;

Warning: sqlite_query(): no such table: Havsmonstret in ***PATH*** on line 3

Vad är det jag har gjort för fel? Tablet finns ju faktiskt.
/Seamonster

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Det ser inte ut som att du öppnar någon anslutning mot "domination"; snarare ansluter du mot någonting som heter "sqlitedb".

seamonsterMedlem sedan maj 200852 inlägg
#3

Du har helt rätt... Varför såg jag inte det?
Nu får jag ett annat svar;
"Resource id #3 "
Varför det? 'kill' har valuet 255...

Peter SMedlem sedan dec. 20025 484 inlägg
#4

När får du det meddelandet?

seamonsterMedlem sedan maj 200852 inlägg
#5

När jag kör php filen i Firefox.

macwizMedlem sedan sep. 200811 inlägg
#6

Du får värdet på hela array:n, inte på innehållet i den.

Peter SMedlem sedan dec. 20025 484 inlägg
#7

Precis, du får använda t.ex. $result['kill'] när du skriver ut värdet (dock kan det vara bra att innan göra någon typ av koll för huruvida något resultat faktiskt returnerades).

seamonsterMedlem sedan maj 200852 inlägg
#8

Okej. En liten updatering;
På koden:

<?php
$dbhandle = sqlite_open('domination');
$result = sqlite_array_query($dbhandle, 'SELECT * FROM Havsmonstret LIMIT 0, 20', SQLITE_ASSOC);
sqlite_close($dbhandle);
echo $result
?>

får jag svaret: "Array".
Om jag lägger till ['kill'] på $result får jag ett helt blankt svar. Inget.

Det verkar dock inte som jag får kontakt med databasen... Hur använder jag 'or die' och error message?

drewMedlem sedan mars 2007748 inlägg
#9

Testa

$dbhandle = sqlite_open('domination') or die(sqlite_error_string());
SoMeOnEMedlem sedan nov. 200294 inlägg
#10

Du saknar en loop:

<?php
$dbhandle = sqlite_open('domination') or die(sqlite_error_string());
$result = sqlite_array_query($dbhandle, 'SELECT * FROM Havsmonstret LIMIT 0, 20', SQLITE_ASSOC);
sqlite_close($dbhandle);
foreach ($result as $entry) {
echo $entry['kill']."\n";
}
?>
seamonsterMedlem sedan maj 200852 inlägg
#11

Yah. Nu funkade det.
Dock funkar det inte riktigt som det är tänkt, den koden echoar:
"657 255 255 255 255 255 "
Valuet av kill är "255". De andra valuesen i databasen har 555, 755 och 1055.

SoMeOnEMedlem sedan nov. 200294 inlägg
#12

Testa att dumpa arrayen med var_dump();

<?php
$dbhandle = sqlite_open('domination') or die(sqlite_error_string());
$result = sqlite_array_query($dbhandle, 'SELECT * FROM Havsmonstret LIMIT 0, 20', SQLITE_ASSOC);
sqlite_close($dbhandle);
var_dump($result);
?>

kolla sedan på "vissa källa" på sidan så står det allt vad arrayen innehåller. Ifall det ser fel ut där är det antagligen något fel utanför php, att du har gjort något fel i databasen eller i själva frågan. Jag har aldrig använt sqlite så kan också vara så att det skiljer sig på något sätt från MySql som inte jag känner till.

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb