PHP
اول بریم سر PHP .
خب توی PHP دو بخش برای کار با SQLite داریم. یکی SQLite و یکی SQLite3 .
قسمت SQLite تشکیل شده از یه سری توابع که اکثرا مثل توابعی هستن که برای همه دیتابیس ها PHP داره. مثل sqlite_open و sqlite_query و sqlite_fetch_array و ... . البته بعضی توابع SQLite رو هم مثل sqlite_create_function رو هم داره.
این بخش مثل این که از PHP5 به اینور وجود داره و تا اونجایی که من فهمیدم ورژن 2 و 1 SQLite رو پشتیبانی میکنه. و ورژن 3 رو هم نمیشناسه. با یه PHP5 میتونید با اکثر این توابع کار کنید. ( یکی دو تاشون 5.1 میخوان ).
یه لیست از چند تا از توابع مهمش :
sqlite_array_query —
اجرای یه query و برگردوندن نتیجه.
sqlite_changes —
نمایش تعداد سطر های متاثر شده از اجرای دستور قبلی.
sqlite_close —
بستن دیتابیس.
sqlite_column —
برگردوندن یه ستون از سطر جاری یه نتیجه.
sqlite_current —
دادن سطر جاری یه نتیجه بصورت یه آرایه.
sqlite_fetch_all —
برگردوندن کل سطر ها بصورت آرایه ای از آرایه ها.
sqlite_fetch_array —
برگگردوندن سطر بهدی نتیجه بصورت آرایه
sqlite_fetch_object —
برگگردوندن سطر بهدی نتیجه بصورت شیئ
sqlite_num_fields —
دادن تعداد فیلد های یک نتیجه
sqlite_num_rows —
دادن تعداد سطر یک نتیجه
sqlite_open —
باز کردن یه دیتابیس. اگه وجود نداشته باشه میسازه. با دادن :memory: به جان نام دیتابیس میتونید یه دیتابیس توی حافظه بسازید.
sqlite_query —
اجرای یه query
و یه مثال :
کد php:
<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
$result = sqlite_query($db, 'select bar from foo');
var_dump(sqlite_fetch_array($result));
} else {
die($sqliteerror);
}
?>
که من اینو تست کردم و دیتابیسی که ساخت ورژن 2 بود.
توی قسمت SQLite3 سه تا شیئ داریم. این قسمت به PHP 5.3 نیاز داره ( wamp من ورژنش 5.2.5 هسته. بدشانسی رو میبینید؟ یه 0.0.5 همش کم داره
. بنابر این فعلا نمیتونم تست کنم) سه تا شیئ میشه :
--SQLite3
کار های معمول با دیتابیس مثل باز و بسته کردن و اجرای دستور ها. ساختن دستور (SQLite3Stmt) خطا یابی و ... . تابع query که برای اجرای دستوره نتیجه رو در قالب SQLite3Result برمیگردونه و با تابع prepare هم یه دستور رو به SQLite3Stmt ، برای انجام عملیات بیشتر ، تبدیل میکنیم.
SQLite3Stmt--
توابعی برای کار روی دستورات مثل افزودن پارامتر و اجرا کردن و ... .
SQLite3Result--
توابعی برای کار روی نتایج. مثل دادن نتایج به صورت آرایه.
و یه مثال
کد php:
<?php
$db = new SQLite3('mysqlitedb.db');
$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");
$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>
در ضمن توی wamp جدید هم SQLiteManager اضافه شده (الان تو تایپیک برنامه های مدیریت معرفیش میکنم
(.
MyBB هم از هر دو ورژن 2 و 3 پشتیبانی میکنه
تا بعد.