LoginSignup
4
3

More than 5 years have passed since last update.

CS-CartのDBからデータを取得するAPIまとめ

Last updated at Posted at 2015-12-14

CS-Cartのデータベースからデータを取得するAPIを紹介する。

array db_get_array(string $query)

戻り値の形式は連想配列の配列。

$users = db_get_array('SELECT user_id, firstname, lastname FROM ?:users');
結果
array (
  0 => 
  array (
    'user_id' => '1',
    'firstname' => 'John',
    'lastname' => 'Doe',
  ),
  1 => 
  array (
    'user_id' => '5',
    'firstname' => 'Vendor',
    'lastname' => 'Vendor',
  ),
)

array db_get_hash_array(string $query, string $field)

特定のフィールドを連想配列のキーにして返す。

$users = db_get_hash_array('SELECT user_id, firstname, lastname FROM ?:users', 'user_id');

キーがuser_idと同じことに注目。

結果

array (
  1 => 
  array (
    'user_id' => '1',
    'firstname' => 'John',
    'lastname' => 'Doe',
  ),
  5 => 
  array (
    'user_id' => '5',
    'firstname' => 'Vendor',
    'lastname' => 'Vendor',
  ),
)

array db_get_row(string $query)

一行だけ取得する。LIMIT 1を自動的につけるわけではないので、パフォーマンスを得たい場合はSQLにLIMIT 1も明示する必要あり。

$user = db_get_row('SELECT user_id, firstname, lastname FROM ?:users');
結果
array (
  'user_id' => '1',
  'firstname' => 'John',
  'lastname' => 'Doe',
)

mixed db_get_field(string $query)

最初の行の最初のカラムの値を返す。

$userId = db_get_field('SELECT user_id, firstname, lastname FROM ?:users');
結果
'1'

array db_get_fields(string $query)

最初のカラムをすべて返す。

$userIds = db_get_fields('SELECT user_id, firstname, lastname FROM ?:users');
結果
array (
  0 => '1',
  1 => '5',
)

array db_get_hash_single_array(string $query, array $params)

第二引数で渡したKey-valueのタプルで連想配列を作って返す。

$firstnames = db_get_hash_single_array('SELECT user_id, firstname, lastname FROM ?:users', ['user_id', 'firstname']);
結果
array (
  1 => 'John',
  5 => 'Vendor',
)

関連

CS-CartのSQLプレースホルダの挙動 - Qiita

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3