Подскажите как правильно работать с sampdb.
Написал скрипт на пхп который генерит базу.
if ($db = sqlite_open('D:\Games\GTA_San_Andreas\Lan\2.2\samp022server.win32\scriptfiles\usersdb', 0666, $sqliteerror)) { sqlite_query($db, 'CREATE TABLE users ( login VARCHAR( 20 ) NOT NULL , pass VARCHAR( 10 ) NOT NULL ) '); sqlite_query($db, "INSERT INTO users VALUES ('admin','password')"); $result = sqlite_query($db, 'SELECT * FROM users'); print_r(sqlite_fetch_array($result)); } else { die($sqliteerror); }
Скрипт создал базу и показав Array ( [0] => admin [login] => admin [1] => password [pass] => password ) подтвердил, что она создана.
Базу положил в папку scriptfiles и заодно еще одну рядом с samp-server.exe, чтоб наверняка.
Затем открыл pawno редактор и написал следущий код внутри main()
main() { print("\n----------------------------------"); print(" Blank Gamemode by your name here"); print("----------------------------------\n"); new DB:db; new DBResult:dbres; new stri[255]; db_open("users"); // dbres = db_query(db, "CREATE TABLE users (login VARCHAR( 20 ) NOT NULL ,pass VARCHAR( 10 ) NOT NULL) '"); // dbres = db_query(db, "INSERT INTO users VALUES ('admin','password')"); dbres = db_query(db, "SELECT * FROM users"); printf("db_num_fields:%d", db_num_fields(dbres) ); printf("db_num_rows:%d", db_num_rows(dbres) ); db_get_field(dbres, 0, stri, 255); printf("stri:%s",stri ); db_close(db); }
На выходе получил
db_num_fields:0
db_num_rows:0
stri:
Если поменять имя базы и раскоментировать 2 строки, чтобы создать базу через сам сервер ситуация не изменится. Но при этом сама базу будет пустой.
Где я ложанулся?
Отредактировано Kedo (2008-08-06 13:52:48)