a-blog cms でのデータベースあれこれ

a-blog cms でデータベースを扱うための備忘録。

1. テーブルの作成

テーブルを作成する SQL クラスのメソッドはないので、SQL を書いて作成。

$DB = DB::singleton(dsn());                                                                                                                                                                         
$q = 'CREATE TABLE acms_test(id INT(11) AUTO_INCREMENT NOT NULL, test_name VARCHAR(100), PRIMARY KEY (id));';                                                                                                                                                                                             
$res = $DB->query($q, 'exec');

2. テーブルのフィールドにインサート

SQL クラスは SQL を簡単に記述できるクラス。

$DB = DB::singleton(dsn());

$SQL = SQL::newInsert('test');       
$SQL->addInsert('test_name', 'test');
$q = $SQL->get(dsn()); 
$res = $DB->query($q, 'exec');

$q の値

INSERT INTO acms_test (test_name) VALUES ('test')

3. フィールドから値を取得

$DB = DB::singleton(dsn());

$SQL = SQL::newSelect('test');
$SQL->addSelect('test_name');
$q = $SQL->get(dsn());
$res = $DB->query($q, 'all');   

$q の値

SELECT test_name FROM acms_test

取得する値を絞り込む

test テーブルで id が 1 の値を出力する

$DB = DB::singleton(dsn());
                                                                       
$SQL = SQL::newSelect('test');              
$SQL->setSelect('*');                       
$SQL->addWhereOpr('id', 1);                 
$q = $SQL->get(dsn());                      
$res = $DB->query($q, 'all');  

$q の値

SELECT* FROM acms_test WHERE 1 AND id = 1

4. テーブル結合

test テーブルと test2 テーブルがある。

test テーブルの中身(id, test_name, test_2)

  • 1 test 2
  • 2 test2 1
  • 3 test3 1

test2 テーブルの中身(id, test2_name)

  • 1 test_name2
  • 2 適当
$DB = DB::singleton(dsn()); 
                       
$SQL = SQL::newSelect('test', 'a');
$SQL->setSelect('id',null,'a');
$SQL->addSelect('test_name');
$SQL->addSelect('test2_name');  
$SQL->addLeftJoin('test2', 'id', 'test_2', 'b', 'a');
                        
$q = $SQL->get(dsn());      
$res = $DB->query($q, 'all');     

出力

array (size=3)
  0 => 
    array (size=3)
      'id' => string '2' (length=1)
      'test_name' => string 'test' (length=4)
      'test2_name' => string 'test_name2' (length=10)
  1 => 
    array (size=3)
      'id' => string '3' (length=1)
      'test_name' => string 'test_sample' (length=11)
      'test2_name' => string 'test_name2' (length=10)
  2 => 
    array (size=3)
      'id' => string '1' (length=1)
      'test_name' => string 'test' (length=4)
      'test2_name' => string '適当' (length=6)

test の test_2 テーブルの値が test2 の id と一致している。

5. フィールド更新

$DB = DB::singleton(dsn());

$SQL = SQL::newUpdate('test');             
$SQL->addUpdate('test_name', "new_name");                       
$q = $SQL->get(dsn());                    
$res = $DB->query($q, 'exec');

関連記事

この記事のハッシュタグに関連する記事が見つかりませんでした。

最新記事

カテゴリー

アーカイブ