Hello,
I've got an issue with creating database file in SQLite. For some reasons db file is created but it's empty inside.
Here is my code. I was doing through it several times, can't see anything wrong with it. Does it actually depend on computer I am using?
<?
$db=sqlite_open("art.db");
@sqlite_query($db, "DROP TABLE Picture");
@sqlite_query($db, "DROP TABLE Artist");
@sqlite_query($db, "DROP TABLE Sales");
@sqlite_query($db,"CREATE TABLE Picture (ID integer PRIMARY KEY , name VARCHAR[200], year integer, artistID integer)",$sqliteerror);
@sqlite_query($db,"CREATE TABLE Artist (IDnum integer PRIMARY KEY , aname VARCHAR[10], DOB integer, DOD integer, nationality VARCHAR[200])",$sqliteerror);
@sqlite_query($db,"CREATE TABLE Sales (picID integer PRIMARY KEY , sdate date, price decimal)",$sqliteerror);
sqlite_query($db,"INSERT INTO Picture (ID, name, year, artistID) VALUES ( 1, 'The Hay Wain', 1821, 4 )");
sqlite_query($db,"INSERT INTO Picture (ID, name, year, artistID) VALUES ( 2, 'Salisbury Cathedral from the Meadows', 1831, 4 )");
sqlite_query($db,"INSERT INTO Picture (ID, name, year, artistID) VALUES ( 3, 'A Wheatfield with Cypresses', 1889, 7 )");
sqlite_query($db,"INSERT INTO Artist (IDnum, aname, DOB, DOD, nationality) VALUES ( 4, 'John Constable', 1776, 1837, 'British' )");
sqlite_query($db,"INSERT INTO Artist (IDnum, aname, DOB, DOD, nationality) VALUES ( 7, 'Vincent Van Gogh', 1853, 1890, 'Dutch' )");
I'm not very familiar with SQLite, but a few thoughts to help debug:
- Always use "<?php" tags, not "<?", just to be sure your code will always work regardless of PHP environment (probably not the issue here, but it's good general practice).
- While in development stage, don't use the "@" error suppression operator: you want to see all errors/warnings/notices right now.
- Along with the above, while developing you probably want all errors/warnings/notices reported, either to the error_log or to the screen:
PHP Code:
<?php ini_set('display_errors', true); // if you want them displayed instead of logged, change to false when in production mode error_reporting(E_ALL); // rest of code... ?>
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation
Bookmarks